投稿

12月, 2025の投稿を表示しています

.NET もう1つのエラーの扱い方

イメージ
.NETでは、try/catchブロックで囲むことでエラーを処理できます。 try { int item = GetItem(); Console.WriteLine($"Item: {item}"); } catch (Exception ex) { Console.WriteLine($"Caught an exception: {ex.Message}"); } .NEXT というライブラリのResult型を使うと、try/catchブロックを使わずにエラーを処理できます。 using DotNext; Result<int> result = GetItem2(); if (result.TryGet(out int item)) { Console.WriteLine($"Item: {item}"); } else { Console.WriteLine($"Caught an exception: {result.Error.Message}"); } Result<int> GetItem2() { // 条件を満たしていないならエラー if (...) return Result.FromException<int>(new Exception("条件を満たしていません。")); return 0; }; エラーが起こる可能性があることがわかっていれば、Resultを返すようにすると型でその可能性を判別できて、値を安全に取り扱うことができます。 値を直接取り出すこともできます。 Result<int> result = GetItem2(); int value1 = (int)result; int value2 = result.Value; ただし、結果がエラーであった場合はその場でエラーが投げられるので、エラーが出ることが想定される場合はおすすめしません。 エラーの確認をさぼってサーバーを止めないようにしましょう。 インプラス株式会社