JSPで例外を処理する方法:c:catchタグの使い方を徹底解説
JSPアプリケーションを開発していると、実行時エラー(例外)が発生することがあります。JSTL(JSP Standard Tag Library)には、こうした例外を安全に捕捉するための<c:catch>タグが用意されています。
このタグは、タグの本文内で発生したあらゆるThrowableオブジェクトを捕捉し、指定した変数に格納することができます。これにより、ページ全体がクラッシュするのを防ぎ、ユーザーにとって分かりやすい形でエラー処理を行うことが可能になります。
c:catchタグの属性
<c:catch>タグには以下の属性があります。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| var | 本文内の要素によって例外がスローされた場合に、そのjava.lang.Throwableオブジェクトを格納するための変数名 | いいえ | なし |
使用例
以下は、<c:catch>タグを使ってゼロ除算による例外を捕捉するサンプルコードです。
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:catch> タグの使用例</title>
</head>
<body>
<c:catch var ="catchException">
<% int x = 5/0;%>
</c:catch>
<c:if test = "${catchException != null}">
<p>例外: ${catchException} <br />
例外メッセージ: ${catchException.message}</p>
</c:if>
</body>
</html>コードの解説
- <c:catch var="catchException">:このブロック内で発生した例外は、
catchExceptionという名前の変数に格納されます。 - <% int x = 5/0; %>:意図的にゼロ除算を発生させ、ArithmeticExceptionを引き起こしています。
- <c:if test="${catchException != null}">:例外が発生した場合のみ、エラーメッセージを表示します。例外が発生しなければ、このブロックは何も出力しません。
実行結果
上記のコードを実行すると、次のような出力が得られます。
例外: java.lang.ArithmeticException: / by zero 例外メッセージ: / by zero
まとめ
<c:catch>タグを使用することで、JSPページ内で発生する例外を個別に捕捉し、適切なエラーメッセージを表示できます。try-catch構文をスクリプトレットで書く必要がないため、コードの可読性と保守性が向上し、より洗練されたエラー処理を実現できます。予期しないエラーが発生してもページ全体が停止することなく、ユーザーに親切なメッセージを返すことができるため、本番環境のJSPアプリケーションではぜひ活用したい機能です。
-
Pythonで例外処理を行う方法:try-exceptブロックの基本
Pythonで例外を処理する最もシンプルな方法は、try-exceptブロックを使うことです。tryブロックの中には例外が発生する可能性のあるコードを記述し、exceptブロックには実際に例外が発生した場合の処理を記述します。さらに、例外が発生しなかった場合にのみ実行したい処理は、elseブロックに記述できます。コード例try: fob = open(test.txt, r) fob.write(This is my test file for exception handling!!) except IOError: print(Error: cant find th
-
Pythonでループ内の例外を処理するには?try-except文の基本と実例
try-except文で例外を捕捉する方法 Pythonでは、try-except文を使用することで、プログラムの実行中に発生した例外(エラー)を捕捉し、プロセスが異常終了するのを防ぐことができます。以下のようにコードを書き直すことで、例外を安全に処理できます。 a = [] foo = redbullz try: for i in foo: a.append(i) print(a[8]) except Exception as e: print(e) このコードを実行すると、次のような出力が得られます。 list index out of range