-
例外処理とエラーステータスコードの関係を理解する: C#では、例外がスローされた場合、通常は例外がキャッチされ、適切なエラーハンドリングが行われます。エラーステータスコードは、エラーの種類や重大度を示すために使用されます。
-
HttpStatusCode列挙型の使用: C#には、HTTPステータスコードを表すためのHttpStatusCode列挙型があります。この列挙型は、一般的なHTTPステータスコード(例: 200、404、500など)を定義しています。
例:
try { // 例外が発生する可能性のあるコード } catch (Exception ex) { if (ex is FileNotFoundException) { return HttpStatusCode.NotFound; } else if (ex is UnauthorizedAccessException) { return HttpStatusCode.Unauthorized; } else { return HttpStatusCode.InternalServerError; } }
この例では、FileNotFoundExceptionがスローされた場合は「NotFound(404)」、UnauthorizedAccessExceptionがスローされた場合は「Unauthorized(401)」、それ以外の例外がスローされた場合は「InternalServerError(500)」を返します。
-
自定义のエラーステータスコードの使用: HttpStatusCode列挙型にはすべてのエラーステータスコードが含まれているわけではありません。場合によっては、独自のエラーステータスコードを定義する必要があります。
例:
public enum CustomStatusCode { DatabaseError = 520, InvalidInput = 400 } try { // 例外が発生する可能性のあるコード } catch (Exception ex) { if (ex is DatabaseException) { return (int)CustomStatusCode.DatabaseError; } else if (ex is InvalidInputException) { return (int)CustomStatusCode.InvalidInput; } else { return HttpStatusCode.InternalServerError; } }
この例では、DatabaseExceptionがスローされた場合は「DatabaseError(520)」、InvalidInputExceptionがスローされた場合は「InvalidInput(400)」を返します。
これらの方法を使用することで、C#で例外に基づいて適切なエラーステータスコードを返すことができます。適切なエラーステータスコードを返すことは、APIやウェブアプリケーションの動作を改善し、デバッグやエラートラッキングを容易にする重要な要素です。