3テラバイト

プログラム関連備忘録サイト。主にゲーム。

C#

C#例外処理の使い方

投稿日:2022年1月23日 更新日:

例外処理

数値文字列を数値に変換するint.Parseメソッドを例に例外処理を行うと、以下のようになります。
try-catchステートメントを使用し、tryブロックに例外を捕捉したいコードを記述すると、例外をスローした場合はそこでコードが終了し、catchブロックに処理が移動します。

catchブロックの引数に捕捉したい例外のクラスを指定すると、その例外発生時にcatchブロックで処理を行うことができます。

この例ではint.Parseメソッドに渡す文字列が数値の形式ではないため、FormatExceptionをスローするため、FormatExceptionを引数に取っているcatchブロックの処理が実行されます。

try
{
  string str = "1-1";
  int num = int.Parse(str);
}
catch (FormatException e)
{
  Console.WriteLine("フォーマットが不適切です");
}

基本の例外クラス

https://docs.microsoft.com/ja-jp/dotnet/api/system.exception?view=net-6.0
以下は上記ページに記載されている基本的な例外のリストです。
System.Exceptionクラスを基底に、さまざまな例外クラスが定義されていますが、これらは多くのメソッドで返される可能性のあるものです。

クラス説明
ArgumentException無効な引数
ArgumentNullException引数がnull
ArgumentOutOfRangeException引数が有効範囲外
DirectoryNotFoundExceptionディレクトリパスが見つからない
DivideByZeroException0除算
DriveNotFoundExceptionドライブが見つからない
FileNotFoundExceptionファイルが見つからない
FormatExceptionフォーマットが不適切
IndexOutOfRangeExceptionインデックスが境界外
InvalidOperationException無効な操作
KeyNotFoundExceptionキーが見つからない
NotImplementedExceptionメソッドが実装されていない
NotSupportedExceptionメソッドがサポートされていない
ObjectDisposedException破棄されたオブジェクト
OverflowExceptionオーバーフローが発生
PathTooLongExceptionパスが最大長を超えている
PlatformNotSupportedExceptionプラットフォームサポート外
RankException次元数の誤り
TimeoutExceptionタイムアウト
UriFormatExceptionURIフォーマット

-C#


comment

メールアドレスが公開されることはありません。

関連記事

no image

C#で指定シンボルが定義されている場合のみ関数を実行する属性ConditionalAttribute

#define IS_DEBUG using System; using System.Diagnostics; [Conditional("IS_DEBUG")] pub …

no image

C#で整数の桁数を取得する

こんにちは、今日はC#で整数の桁数を取得する方法についてまとめていきます。 ToString()を用いる ToString関数でstring型に変換、Lengthで要素数から桁数を求めます。 int …

no image

C#で文字列型と列挙型の変換方法

こんにちは、今日はC#で文字列型と列挙型の変換方法についてまとめていきます。 文字列型から列挙型への変換方法 以下のような列挙型が定義されている場合 enum Animal { Cat, Dog } …

no image

Unityで実行環境の情報を取得する方法

System.Environmentクラスで現在の環境についての情報が取得できます。 OSバージョン System.OperatingSystem os = System.Environment.OS …

no image

C#で0埋めする方法

こんにちは、今日はC#で0埋めする方法についてまとめていきます。 0埋め 文字列の書式指定を用いて、数値の0埋めをすることができます。 ToString 以下の例ではint型のToString関数の引 …