Try
Catch
ブロックについて疑問があります。ブロックでエラーが発生すると、ルールに従ってブロックTry
にリダイレクトされます。Catch
だから私は私のラベルに visible = true をcatch ブロックに設定できますか?
すなわちlblError.visible=true;
コーディング標準に従って正しいですか?私は開発が初めてです。
たとえば、入力要素の可視性を catch ブロックで false に設定し、代わりにエラー パネルを表示することができます。
Catchブロックは、tryブロックでスローされたエラーによって与えられたダメージを回復するための開発者を提供します。
したがって、tryブロックにエラーが表示された場合に実行する必要のあるコードを書き留めることができます。すなわちエラーロギング
はい、メソッドからでも、catch ブロック内に任意のコードを記述できますreturn
。一時finaly{}
的に、ブロックを使用して、例外がスローされたメソッドで使用するリソースを解放する必要があります (たとえば、データベース接続を使用します)。
そうです、何が問題なのですか?try..catch がコードの多くの場所に表示される可能性があるため、catch ブロックで lblError を表示および設定することに慣れていない可能性があります。
また、catch ブロックから例外をスローし、セッション レベルまたはアプリケーション レベルでそれらすべてを 1 か所で処理して、最後に発生したエラーを取得し、それに応じてユーザー フレンドリーなメッセージを表示できる 1 つのデフォルト エラー ページにリダイレクトすることもできます。
また、web.config で CustomErrors セクションを有効にして、セッションで発生したエラーの特定のページにリダイレクトすることもできます。
try
{
//statements;
}
catch (Exception ex)
{
ShowError(ex);
}
void ShowError(Exception ex)
{
//Log or Email error first
LogOrEmailError(ex);
// you can write user friendly message based on the exception provided or a generic error message.
lblError.Visible = true;
lblError.Text = GetUserFriendlyErrorMessage(ex); // or throw; if you are planing to handle error in global.ascx or through CustomErrors in web.config
}
はい、とても。catch ブロックには通常のコーディング行を記述できます。