Swiftにおけるエラーについて

iOSエンジニア

swiftにおけるエラーとは

Swiftは比較的バグが発生しにくい言語仕様になっているようですが、想定通りに動かないエラーが発生します。
しかし、エラーは開発者にとっては悪いことではなくバグを事前に防ぐ便利なもので上手く付き合っていきたいですね。

Swiftには2種類のエラーがある

Swiftでは仕様的に発生するエラーは大きく2種類に分けられることができます。

①コンパイルエラー

そもそもコンパイルって何?

コンパイルとはなんなのでしょうか?
コンパイルとはプログラミング言語読み込み変換方法の種類のことです。
プログラミング言語読み込み変換方法は2種類に分けられます。


1. コンパイラ型
コードをまとめて読み込み変換する形式のこと
コードをまとめて読み込むことをコンパイルという
例:Swift, C, C++, C#, Java等

2. インタプリタ型
コードを1行づつ読み込み変換する形式のこと
例: Python, Ruby, PHP等

エラーの種類

Type Mismatch Error(型の不一致エラー)
関数の引数の型や代入する変数の型が一致していない場合に発生します。
例えば、Int型の値をDouble型の変数に代入しようとするとエラーが発生します。

Missing Argument Label Error(引数ラベルが欠落しているエラー)
関数の呼び出し時に必要な引数のうち、引数ラベルを指定していない場合に発生します。

Unexpectedly found nil while unwrapping an Optional(オプショナルのアンラップ中にnilが見つかりました)
オプショナル型の変数をアンラップ(!)しようとした際に、nilが代入されていた場合に発生します。

②ランタイムエラー

ランタイムエラーはコンパイル成功後に実行した際に発生するエラーです。
例えばアプリをビルドした後に画面遷移したらクラッシュしてしまった場合などはこのランタイムエラーの可能性が高いです。

エラーの種類

Array Index Out of Range Error(配列のインデックスが範囲外です)
配列のインデックスが配列の範囲外にある場合に発生します。

Unexpectedly found nil(nilが見つかりました)
オプショナル型の変数がnilであることを想定していなかった場合に発生します。

EXC_BAD_ACCESS(アクセス違反)
ポインタが無効なアドレスを参照している場合に発生します。

コメント

タイトルとURLをコピーしました