Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでのTryCatchによる例外処理

最高のプログラマーでさえ、コードに間違いを犯します。タイプミス、予期しないユーザー入力、または追跡が困難なその他の多くの理由により、エラーが発生する可能性があります。

そこで、例外処理が役立ちます。優れたコードには、事前定義された方法でコードのエラーに応答する例外ハンドラーが含まれています。例外ハンドラは、エラーが発生した場合の応答方法をプログラムに指示するので便利です。

Javaでは、try...catch ブロックは例外処理に使用されます。このチュートリアルでは、例外処理の基本、try...catchの使用方法について説明します。 例外を処理するためのブロック、およびfinallyを使用する方法 try...catchを含むステートメント 。また、try...catchの例をいくつか紹介します。 動作中のブロック。

Javaの例外

例外は、プログラムの実行中に発生する予期しないイベントです。例外により、プログラムのフローが中断され、プログラムが完了する前に実行が停止する可能性があります。

例外は、サーバーにアクセスできない、コードエラー、タイプミス、存在しないファイルを開く、誤ったユーザー入力など、さまざまな理由で発生します。

エラーメッセージは、Javaの例外とは異なります。エラーとは、メモリ不足など、プログラムが回復できない条件が満たされていることを指します。したがって、エラーは通常、開発者によって処理されません。

ただし、例外は、処理可能なプログラム内の問題です。例外が発生すると、例外オブジェクトと呼ばれるオブジェクトが作成されます。 。これらのオブジェクトには、名前やプログラムで発生した場所など、例外に関するデータが含まれています。

これで、Javaでの例外処理の基本がわかったので、try...catchの使用を開始できます。 それらの例外を処理するステートメント。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

CatchJavaを試す

try...catch ステートメントは、Javaで例外を処理するために使用されます。例外を処理するために、コードのブロックがtry_catch内に配置されます ブロック。

プログラムがtry_catchに遭遇したとき ブロック、try内のコード ブロックが実行されます。例外が発生した場合、catch内のコード ブロックはすぐに実行されます。 catch ブロックはtryの後に来る必要があります try..catchでブロックする 声明。

try_catchの構文は次のとおりです Javaのステートメント:

try {
	// Code to run
} catch (ExceptionType error) {
	// Code to run when exception is raised
} finally {
	// Code to run even if exception is not raised
}

finallyについてお話します このチュートリアルの後半でブロックしますが、ここではtry_catchに焦点を当てます。 ブロック。このコードブロックがどのように機能するかを説明するために、例を見ていきましょう。

CatchJavaの例を試す

studentNamesという配列を使用するプログラムを作成しているとします。 。 StudentNames配列の5番目の名前をコンソールに出力します。しかし、私たちのクラスには6人の生徒しかいません。

これにより、存在しなかった値を参照するため、コードでエラーが発生します。インデックス値が5の生徒の名前を出力しようとするプログラムの例を次に示します(インデックス値は0から始まるため、クラスの6番目の生徒)。

class Main {
public static void main(String[] args) {
String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"};
System.out.println(studentNames[5]);
}

コードは次のようになります:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
    at Main.main(Main.java:4)

ご覧のとおり、存在しない値を参照しようとしたため、プログラムは長いエラーを返しました。

それでは、try...catchを使ってみましょう エラーを処理するためのブロック。エラーが発生した場合、プログラムは「エラーが発生しました」と出力する必要があります。これにより、問題が発生したことがわかります。このタスクを実行するには、次のコードを使用できます。

class Main {
public static void main(String[] args) {
	try {
String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"};
System.out.println(studentNames[5]);
} catch (Exception e) {
	System.out.println("There was an error.");
		}
}

コードを実行すると、次の応答が返されます。

There was an error.

さらに、複数のcatchを指定することもできます ブロック。これは、各例外を異なる方法で処理できるため便利です。

上記の例では、ArrayIndexOutOfBoundsException 提起されました。そのエラーを具体的にテストし、カスタムメッセージをコンソールに出力し、その他の一般的な例外をテストする場合は、複数のcatchステートメントを使用できます。

これは、ArrayIndexOutOfBoundsExceptionの両方をテストするプログラムの例です。 および一般的な例外であり、各エラーに対するカスタム応答があります。

class Main {
public static void main(String[] args) {
	try {
String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"};
System.out.println(studentNames[5]);
} catch (ArrayIndexOutOfBoundsException e) {
	System.out.println("ArrayIndexOutOfBoundsException was raised.");
} catch (Exception e) {
	System.out.println("There was an error.");
		}
}
}

これで、プログラムを実行すると、次のメッセージがコンソールに出力されます。

ArrayIndexOutOfBoundsException was raised.

ArrayIndexOutOfBoundsExceptionが原因で、この応答が返されます 私たちのプログラムで育ちました。ただし、別のエラーが発生した場合は、Exception eのコード catchブロックが実行され、次のメッセージがコンソールに出力されます。

There was an error.

最終声明

finally ステートメントは、try...catchの後にコードのブロックを実行するために使用されます ブロックが実行されました。 finally ブロックはオプションであり、定義されている場合は常に実行されます。例外が発生しない場合は、finally ブロックはtryブロックの後に実行されます。例外が発生した場合は、catchの後に実行されます ブロック。

上記の例を使用して、実際のfinallyステートメントを説明しましょう。 This block has finished executingというメッセージをコンソールに出力するとします。 。 try_catch ステートメントが完了しました。次のコードを使用してみることができます。

class Main {
public static void main(String[] args) {
	try {
String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"};
System.out.println(studentNames[5]);
} catch (ArrayIndexOutOfBoundsException e) {
	System.out.println("ArrayIndexOutOfBoundsException was raised.");
} catch (Exception e) {
	System.out.println("There was an error.");
		} finally {
			System.out.println("This block of code has finished executing.");
		}
}
}

コードを実行すると、次の応答が返されます。

ArrayIndexOutOfBoundsException was raised.

このコードブロックの実行が終了しました。

ご覧のとおり、私たちのコードはArrayIndexOutOfBoundsExceptionを発生させました 上記で見たように、例外であり、関連するcatch内でコードを実行しました ブロック。

上記の例では、finallyを指定しました 声明。したがって、コードはThis block of code has finished executingというメッセージを出力しました。 。 catchの後 ブロックが実行されました。

結論

try...catch ブロックは、例外を適切に処理するためにJavaで使用されます。 try内のコード ブロックが実行され、例外が発生した場合、関連するcatch内のコード ブロックが実行されます。さらに、finally ステートメントは、try...catchの後にコードを実行するために使用されます 例外が発生していなくても、ブロックは実行されました。

このチュートリアルでは、try...catchの使用方法について説明しました。 Javaで例外を処理するためのブロックとJavaのfinallyの使用方法 ブロック。また、両方のtry...catchの例についても説明しました。 ブロックとfinally エラーを処理するために使用されているステートメント。

これで、Javaで例外を自信を持って処理するために必要な情報を入手できました。


  1. Eclipseを使用したJavaFX。

    eclipseでJavaFxをセットアップするには、まず、システムにeclipseとJavaが正常にインストールされていることを確認してください。 Mavenの依存関係 Maven依存関係を使用してJavaFX環境をセットアップするには、EclipseでJavaプロジェクトを作成し、以下に示すようにMavenプロジェクトに変換します- 次にpom.xm lファイルは次のJavaFX依存関係を追加し、プロジェクトを更新します。 <dependency>    <groupId>org.openjfx</groupId>  

  2. コード例を含むJava8Streamsチュートリアル

    このブログ投稿では、Java 8 Streamsの機能について説明し、さまざまなコード例を提供します。 Java Streamsは関数型プログラミングをJavaにもたらし、Java 8以降でサポートされているため、古いバージョンのJavaを使用している場合は、JavaStreamsを使用するためにJava8にアップグレードする必要があります。 Javaストリームを使用する理由 ストリームの利点のいくつか: ストリームを使用すると、より効率的なJavaプログラマーになります(ほんの数行のコードで、ストリームを使用して実際にかなり多くのことを達成できることがわかります)。 使い捨て関数の一種