私はすでに答えを知っていると確信していますが、Try、Catch、Finally ブロック内でエラーを処理することについての意見がどうなっているのか、まだ興味があります。
ところで-私はユーザー入力について話しているのではありません-しかし、それは明確で短いので、例として使用します
このコードを考えてみましょう...
try {
if (success) {
return someSuccessMessage;
}
else {
logError("User input not correct format");
return someErrorMessage; // repeats itself
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage; // repeats itself
}
関数が失敗した場合、例外は無関係であるため、エラー メッセージを返したいとします。関数は成功せず、ユーザーは追加の詳細を必要としません。
私は常に、エラーを処理できる場合は例外を回避するという信念を持っていました-それはもはや例外的ではないためです.あなた自身...
try {
if (success) {
return someSuccessMessage;
}
else {
throw new Exception("User input not correct format");
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage;
}
これは最良の例ではありませんが、コードを繰り返すことを強調するために簡潔にするつもりでした。
例外はパフォーマンスの低下を招くことが知られていますが、このような状況についてはどう考えていますか?