SwiftのfatalErrorとは

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

Swiftは、その多くはObjective-CおよびCocoa Frameworkから取られているが、Swift特有の機能も少なくない。Objective-Cでは基本的にNSObjectのサブクラスとして扱われる各クラスの一方で、Swiftではネイティブクラス、あるいはstructも存在するからである。ここではSwift特有の機能であるfatalErrorについて説明したい。

fatalErrorとは、当然のことながら、致命的なエラーが発生したとして、強制的に終了させてしまうというもので、C言語およびObjective-Cで言えばexitに近い命令といえる。

例えば、以下のコードのような使い方がある。なお、ここでは各オブジェクト・変数は定義済みとする。

guard let foo = bar.something() else {
    fatalError()
}

ここでは、guard ... else { ... }都することで、bardoSomething()メソッドの返り値の値が絶対にnilになってはいけないという処理を意味することができる。万一nilになっていたら致命的な問題が発生しているものとして、強制終了させることになる。

Objective-Cではそれに相当するコードを書く場合は、例外を使うか、exitを使うのが比較的近い。

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