プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

【Dart入門】例外処理の説明

投稿日:

記事の内容


この記事では、Dartの例外処理について説明します。

Exceptionとは何か?

プログラムの実行中に発生するエラーのことを例外といいます。
Dartでは、この例外をExceptionクラスで扱います。

具体的には、こういったことが例外と言われます。

  • データベースに接続ができない
  • Web APIにアクセスできない
  • ファイルシステムのI/Oエラー

Exceptionの種類

実行時エラー

  • DeferredLoadException
  • FormatException
  • IntegerDivisionByZeroException
  • IOException
  • IsolateSpawnException
  • TimeoutException

プログラムに問題があった場合

  • AbstractClassInstantiationError
  • ArgumentError
  • AssertionError
  • AsyncError
  • CastError
  • ConcurrentModificationError
  • CyclicInitializationError
  • FallThroughError
  • JsonUnsupportedObjectError
  • NoSuchMethodError
  • NullThrownError
  • OutOfMemoryError
  • RemoteError
  • StackOverflowError
  • StateError
  • UnimplementedError
  • UnsupportedError

Exceptionの使用方法

例外を投げるには、「throw」というキーワードを使います。
そして、その例外を捕捉するには、例外が投げられるコードをtryブロックで囲み、それに対応する「catchブロックとonブロック」を記述します。
そして、finallyは、例外が起きても起きなくても必ず実行されます。
なお、tryの中にある「throw」が発生した場合、「throw」以降のプログラムは読み込まれません。

では、実際に例を見ていきたいと思います。

基本的なtryの使い方

エラーが出ない場合

普通に10が表示されます。

エラーが出る場合

10は表示されずに、catch句の中でエラーが表示されます。

エラーの詳細を知りたい場合

catchの第2引数には、スタックトレース(エラーの詳細)を指定することができます。

finally句

エラーが発生する、しないに関わらず実行したい処理がある場合には「finally」を使います。
開いたファイルを閉じたい場合や、DBの接続を切りたい時には、finallyを使うといいかもしれません。

独自の例外クラスを作成する方法

既存の例外クラスを継承して、独自の例外クラスを作成することもできます。

複数の例外クラスを扱う場合には、「on catch」を書く際に必ず子供の例外クラスから書くようにしましょう。
そうしないと、全ての例外を親例外クラスである「Exception」がcatchしてしまうので、細かく例外処理を記述する意味がなくなってしまいます。

Exceptionクラスを継承

まとめ

この記事では、Dartの例外処理について説明しました。
例外処理は複雑で、覚えなければいけないことは多くあります。
一つ一つ、順番に覚えていきましょう。

Good luck for your engineer life!

DartとFlutterをより詳しく勉強したい人は、この記事を読んで下さい


SwiftでiOSアプリを開発したい人は、この記事を読んで下さい


KotlinでAndroidアプリを開発したい人は、この記事を読んで下さい


Gitをより詳しく勉強したい人は、この記事を読んで下さい


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

関連コンテンツ

-Dart, プログラミング

Copyright© プログラミング道場 , 2022 All Rights Reserved Powered by AFFINGER4.