8週間コースの概要 - 実験報告VI(Javaの異常)

異常な基本的な概念を理解します。

マスターと例外処理は、例外をキャッチする一般的な方法に精通しています

実験的な要件

練習キャッチ例外、異例の声明は、この方法は、tryおよびcatch句に精通し、例外をスロー。

メソッドのカスタム例外クラスマスター

ウェブテスト

そのmain()メソッドの1次元配列を作成し、クラスを書く、ArrayIndexOutOfBoundsExceptionが例外を生成するために、言葉で配列の要素にアクセスしよう。catch節では、この例外オブジェクトをキャッチし、版画「配列の境界」情報に加え、finally節とは、実際にそこに実装されていることを証明するためにメッセージを印刷します。

カスタム例外クラスを使用します

package Domain;

public class ExceptionTest {

    public static void main(String[] args)throws Exception {
        int[]arr = new int[10];
        try{
            int a  = arr[10];
            System.out.println(a);
        }catch(ArrayIndexOutOfBoundsException ex){
            throw new Exception("数组越界",ex);
        }finally{
            System.out.println("验证Finally的运行");
        }
    }

}

危険物の機器の検査ステーション、見つかった危険物は、警告が発行されます場合。危険物のプログラミングアナログ・デバイセズ発見。

技術的な解決策:

DangerException Exgeptionは、サブクラスのサブクラスを作成する例外オブジェクトを作成することができ、例外オブジェクトを呼び出すtoShow()メソッドは、「危険物」を出力し そのようcheckBag(財財)商品が危険物のパラメータを発見された(isDangerプロパティの商品が真である)DangerExceptionが例外をスローするクラスを書くためのマシン。

メインプログラムメインクラスでは()キャッチのtry-catch文における危険物の取り扱いの一部に危険物を発見した場合は、マシンクラスcheckBag(財財)メソッド呼び出しのインスタンスを聞かせてのtry-catchステートメントの方法の一部を試してみてください。

package Danger;

public class DangerException extends Exception{
    String imformation;
    
    DangerException(String imformation){
        this.imformation=imformation;
    
    }
    void toShow(){
        
            System.out.println(imformation);
   }
}
package Danger;

public class Machine {
      String name;
        Goods g;

        public boolean isDanger(String name) {
            String score[] = {"炸弹","毒药","刀具","枪支"};
            boolean flag =false;
            for(int i=0;i<score.length;i++) {
                if(name.equals(score[i])) {
                flag = true;
                break;
                }
            }
            return flag;
             
        }

        void checkBag(Goods g){
            this.g=g;
            name=g.getName();
            try{
                if(isDanger(name)){
                    System.out.print(name);
                    throw new DangerException("是危险品!!!"+"\n");
                }
                else{
                    System.out.print(name);
                    throw new DangerException("不是危险品!"+"\n");
                }
            }catch(DangerException e){
                  e.toShow();
            }
        }
}
package Danger;

public class Goods{
    
    String name;
    
    public void setName(String name){
    this.name=name;
    }
    public String getName(){
    return name;
    }
}
package Danger;
import java.util.Scanner;
public class Test {
     public static void main(String[] args) {
            
            while(true) {
                Scanner sc=new Scanner(System.in);
                
                System.out.println("请输入物品:");
                String input=sc.nextLine();
                Goods g=new Goods();
                g.setName(input);
                Machine m=new Machine();
                m.checkBag(g);
            
            }
        }

}

教訓します

プロセスおよびスレッドの理解は、マルチスレッドは、実装工程におけるプロセスを指し、これらのスレッドが同時に実行、同時に存在することができ,,が、複数のプロセスを含むことができる、いくつかの小さなプログラム単位(すなわちスレッド)を生成することができます一方、実行のスレッド。

Threadクラスの継承

あなたが複数のスレッドを起動すると、あなたは()メソッドは、startで開始しなければなりませんが、直接スレッドを継承したクラスは、あなたが一度だけ、と呼ばれる複数回がスローされます場合は()メソッドを起動する呼び出すことができるかどう達成するためにrun()メソッドを呼び出すことはできません。 " IlleglThreadStateException「例外。

Runnableを実装

抽象メソッドのみ)(ランで、Runnableインタフェースを提供します

おすすめ

転載: www.cnblogs.com/buxiu888/p/11701136.html