Java例外と例外処理

異常な

例外(例外):操作中にコードシーケンスで例外が発生します。

例外の種類は次のとおりです。
ここに画像の説明を挿入します

1.トライキャッチ構造

tryおよびcatchキーワードを使用して、例外をキャッチします。try / catchコードブロックは、例外が発生する可能性のある場所に配置されます。

try / catchコードブロック内のコードは保護コードと呼ばれます。try/ catchを使用するための構文は次のとおりです。

try
{
    
    
   // 程序代码
}catch(ExceptionName e1)
{
    
    
   //Catch 块
}

例えば

public static void main(String[] args) {
    
    
        try{
    
    
            int num = 5/0;
            System.out.println(num);
        }catch (ArithmeticException e){
    
    
            System.out.println("除数不能为零");
        }finally {
    
    
            System.out.println("回收代码资源");
        }
        try{
    
    
            String string = null;
            System.out.println(string.length());
        }catch (NullPointerException e){
    
    
            System.out.println("数值不能为空");
        }finally {
    
    
            System.out.println("回收代码资源");
        }
        System.out.println("程序继续执行");
    }

2.複数のtry-catch構造

tryコードブロックの後に複数のcatchコードブロックが続く状況は、マルチキャッチと呼ばれます。

try{
    
    
   // 程序代码
}catch(异常类型1 异常的变量名1){
    
    
  // 程序代码
}catch(异常类型2 异常的变量名2){
    
    
  // 程序代码
}catch(异常类型3 异常的变量名3){
    
    
  // 程序代码
}

例えば

try {
    
    
    file = new FileInputStream(fileName);
    x = (byte) file.read();
} catch(FileNotFoundException f) {
    
     // Not valid!
    f.printStackTrace();
    return -1;
} catch(IOException i) {
    
    
    i.printStackTrace();
    return -1;
}

3.キーワードを投げる/投げる

メソッドがチェックされた例外をキャッチしない場合、メソッドはthrowsキーワードを使用して宣言する必要があります。throwsキーワードは、メソッドシグネチャの最後に配置されます。

また、throwキーワードを使用して、例外が新しくインスタンス化されたか、キャッチされたかに関係なく、例外をスローすることもできます。

例えば

import java.io.*;
public class className
{
    
    
  public void deposit(double amount) throws RemoteException
  {
    
    
    // Method implementation
    throw new RemoteException();
  }
  //Remainder of class definition
}
import java.io.*;
public class className
{
    
    
   public void withdraw(double amount) throws RemoteException,
                              InsufficientFundsException
   {
    
    
       // Method implementation
   }
   //Remainder of class definition
}

4.最後にキーワード

finishキーワードは、tryコードブロックの後に実行されるコードブロックを作成するために使用されます。

例外が発生するかどうかに関係なく、finallyコードブロック内のコードは常に実行されます。

finallyコードブロックでは、クリーンアップタイプやその他の終了ステートメントを実行できます。

public class ExcepTest{
    
    
  public static void main(String args[]){
    
    
    int a[] = new int[2];
    try{
    
    
       System.out.println("Access element three :" + a[3]);
    }catch(ArrayIndexOutOfBoundsException e){
    
    
       System.out.println("Exception thrown  :" + e);
    }
    finally{
    
    
       a[0] = 6;
       System.out.println("First element value: " +a[0]);
       System.out.println("The finally statement is executed");
    }
  }
}

最後に、あなたはそれを資源のリサイクルと考えることができます。

5.まとめ

  1. 操作中に発生するエラーは例外と呼ばれます。
  2. Javaは、try、catch、throw、throwsを使用し、最後にJava例外を処理します。
  3. 監視対象のコードはtryブロックに書き込まれ、例外のキャッチと処理に使用されるコードはcatchブロックに書き込まれ、最後に実行する必要のあるコードが配置されます。
  4. 手動で例外を発生させるには、キーワードthrowを使用できます。メソッドの外部でスローされる例外は、throws句で指定する必要があります。

おすすめ

転載: blog.csdn.net/s001125/article/details/110489235