.NETの定義済み例外を覚えよう!

[C#] .NETの定義済み例外を覚えよう!

※ 当サイトは広告を含みます。

C#に標準的に用意されてる例外の紹介です。
この辺の例外は事象を判断するのに便利なので、覚えておいたほうがお得ですよ。

公式ドキュメント

実はC#の公式に例外に関するドキュメントがあります。
https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard-exception-types

管理人

ここを読むとException型あたりは任意発生させるなって書いてあります。

りさ

つまり使っちゃ駄目なんですか?

管理人

いや、別に良いんじゃね。ガチガチにルール守ると手間も増えるし。

System 名前空間

汎用的に発生する例外です。1番よく見る系の例外が定義されてます。

Exception例外の頂点。何系に属するのか分からないので任意発生は良くないと言われている。
ApplicationExceptionほぼExceptionと同じ。これも任意発生は良くないらしい。
NullReferenceExceptionnull参照が発生した。
FormatExceptionフォーマットが適切ではない。
OverflowExceptionオーバーフローが発生した。
DivideByZeroExceptionいわゆる0除算が発生した。
TimeoutExceptionタイムアウトが発生した。
StackOverflowExceptionスタックオーバーフローが発生した。
OutOfMemoryExceptionメモリ不足が発生した。
AccessViolationException保護されたメモリ領域にアクセスすると発生する。
ObjectDisposedException破棄済みのオブジェクトが利用された。
IndexOutOfRangeExceptionアクセス範囲外のインデックスを参照した。
InvalidOperationException無効な操作が発生した。
RankException配列の次元数が適切ではない。
ArgumentException引数が適切ではない(nullや有効範囲外なら後述を利用する)。
ArgumentNullException引数がnullです。
ArgumentOutOfRangeException引数が有効範囲外です。
NotImplementedExceptionメソッド等が実装されてません。
NotSupportedExceptionメソッド等でサポート外の操作が発生した。
PlatformNotSupportedExceptionプラットフォームでサポート外の操作が発生した。
管理人

あんまり見ないのあるけど、C#の公式で紹介されてたので載せました。

System.IO 名前空間

ディレクトリやファイルの操作で発生する例外です。

DriveNotFoundException指定したドライブが存在しない。
DirectoryNotFoundException指定したディレクトリが存在しない。
FileNotFoundException指定したファイルが存在しない。
PathTooLongException指定したパスが長すぎる。

System.Collections.Generic 名前空間

コレクション操作時に発生する例外です。

KeyNotFoundExceptionアクセスするためのキーが存在しない。

あとがき

可能な限り独自の例外は作らず、.NETに定義済みの例外を使うほうが、他の開発者も理解しやすいメリットがあります。
特にSystem名前空間に存在する例外は汎用利用が前提なので、この中から選ぶと独自例外を作る手間も減ります。

◆ C#に関する学習コンテンツ

この記事は参考になりましたか?

👆このブログを支援する

関連記事

コメント

この記事へのコメントはありません。