JSPでの例外処理

⚡ スマートサマリー

JSP の例外処理は、コード実行中に発生するエラーを管理します。 Java try-catchブロック。例外は、チェック例外、実行時例外、エラー例外の3種類に分類されます。JSPページでは、errorPage属性とisErrorPage属性を使用して、例外をリダイレクトおよび表示します。

  • ⚠️ 例外の定義: JSP実行中のエラーは次のように処理されます。 Java トライキャッチ。
  • 🗂️ XNUMX つのタイプ: チェック例外、実行時例外、およびエラー例外。
  • 🧾 チェック済み: FileNotFoundException、IOException、およびSQLExceptionは処理する必要があります。
  • 🧨 ランタイム: ArrayIndexOutOfBounds、ArithmeticException、およびNullPointerException。
  • 🛟 errorPage / isErrorPage: エラー発生時に例外スタックを表示するページにリダイレクトする trace.

JSPでの例外処理

JSPの例外とは何ですか?

例外 JSPでは、開発者によるコードエラーまたはシステムの内部エラーが発生した場合に発生します。JSPでの例外処理は、 Java ここではTry Catchブロックを使用して例外を管理します。 Javaただし、コードにエラーがない場合でも、JSP では例外が発生します。

JSP の例外の種類

JSP の例外には次の XNUMX つのタイプがあります。

  1. チェックされた例外
  2. 実行時例外
  3. エラー例外

チェック済みの例外

通常、これはユーザー エラーまたは開発者が認識できない問題であり、チェック例外と呼ばれます。チェック例外の例をいくつか示します。

  1. FileNotFoundException: これはチェック例外です (ファイルがディスク上に見つからない場合にファイルの検索を試みます)。
  2. IO例外: ファイルの読み取りまたは書き込み中に例外が発生した場合、これもチェック例外となり、IO 例外が発生します。
  3. SQL例外: これは、ファイルが接続されている場合のチェック例外でもあります。 SQL SQL データベースの接続に問題がある場合、SQLException が発生します。

ランタイム例外

ランタイム例外は、プログラマーが回避できた例外です。コンパイル時には無視されます。ランタイム例外の例をいくつか示します。

  1. ArrayIndexOutOfBoundsException: これは、配列サイズが制限を超えた場合の実行時例外です。 要素は.
  2. 算術例外: これは、通常の状態では許可されない数学演算がある場合の実行時例外でもあります。たとえば、数値を 0 で割ると例外が発生します。
  3. NullPointer 例外: これは、変数またはオブジェクトにアクセスしようとしたときにその変数またはオブジェクトが null の場合に発生する実行時例外でもあります。 これは非常に一般的な例外です。

エラー:

この問題は、ユーザーまたはプログラマーの制御によって発生します。スタックがオーバーフローすると、エラーが発生する可能性があります。エラーの例をいくつか次に示します。

  1. エラー: このエラーは、アプリケーションが捕捉できない重大な問題を示す throwable のサブクラスです。
  2. インスタンス化エラー: このエラーは、オブジェクトをインスタンス化しようとして失敗したときに発生します。
  3. 内部エラー: このエラーは、JVM からエラーが発生した場合に発生します。 Java 仮想マシン.

エラーの例外

これは throwable クラスのインスタンスであり、エラー ページで使用されます。 throwable クラスのメソッドには次のようなものがあります。

  • パブリック文字列 getMessage() – 例外のメッセージを返します。
  • 公開の例外処理 getCause() – 例外の原因を返します
  • パブリックプリントスタックTrace() – スタックを返しますtrac例外のe。

JSPで例外を処理する方法

JSP で例外を処理する方法の例を次に示します。

例外_例.jsp

<%@ page errorPage="guru_error.jsp" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Exception Guru JSP1</title>
</head>
<body>
<%
 int num = 10;
   if (num == 10)
   {
      throw new RuntimeException("Error condition!!!");
   }
 %>
   </body>
</html>

Guru_error.jsp

<%@ page isErrorPage="true" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Exception Page</title>
</head>
<body>
<p>Guru Exception has occurred</p>
<% exception.printStackTrace(response.getWriter()); %>
</body>
</html>

コードの説明:

例外_例.jsp

Code ライン1: ここでは、エラーがリダイレクトされるときに使用されるエラー ページを guru_error.jsp に設定しています。

Code ライン15: 変数 num を取得して 10 に設定し、条件をチェックして num が 10 であれば、エラー条件としてメッセージを含むランタイム例外をスローします。

Guru_error.jsp

Code ライン1: ここでは、isErrorPage属性をtrueに設定しています。

Code ライン12: 例外は、throw オブジェクトを使用して exception_example.jsp で発生しており、IsErrorPage 属性が true とマークされているため、ここでその例外が表示されます。例外オブジェクト (これは、JSP が例外データにアクセスできるようにするオブジェクトです) を使用して、スタックを出力しようとしています。tracexception_example.jsp で発生したエラーの e。

上記のコードを実行すると、次の出力が得られます。

JSPで例外を処理する

出力:

例外が発生しました。例外は、runtime exception の throw オブジェクトを使用して exception_example.jsp からスローされ、上記のコードを取得しました。また、guru_error.jsp が呼び出され、そこから Guru このファイルで例外が発生しました。

よくあるご質問

JSP例外には、チェック例外(FileNotFoundException、IOException、SQLExceptionなど)、実行時例外(ArrayIndexOutOfBounds、ArithmeticException、NullPointerExceptionなど)、およびエラー(スタックオーバーフローやJVM内部エラーなど)があります。

errorPage属性は、例外が発生した場合にリダイレクトするページを指定します。そのターゲットページでisErrorPage属性をtrueに設定すると、例外の暗黙オブジェクトにアクセスしてエラーを表示できます。

例外暗黙オブジェクトは、エラーページ (isErrorPage=true) でのみ使用可能な Throwable のインスタンスです。getMessage()、getCause()、printStack などのメソッドを公開します。Trace() はエラーを報告します。

AIはスタックを読み取ることができる trace、故障しているラインを特定し、根本原因を平易な言葉で説明し、修正案を提案します。ping 開発者は、テストやコードレビュー中にJSPの例外をより迅速に解決できるようになります。

はい。AIは、try-catchブロックやエラーページを追加する場所を推奨したり、再利用可能なエラーページを生成したり、未処理のチェック例外をフラグ付けしたりすることで、JSPアプリケーションの堅牢性を向上させることができます。