テキストでは、Javaの例外処理秒をお知らせします

使用何が珍しい、異常なメカニズムは何ですか?

そのようにプログラムをより強固なコンソールに出力異常、Javaの例外情報、プログラマのための基準であるプログラム正常に行われないが、プログラマは、プログラムを変更することができます。

package ExceptionPcakage;

public class ExceptionTest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a=10,b=0,c=3;
		System.out.println(devide(a,b));
	}
	public static int devide(int a,int b) {
		return a/b;
	}
}

  • Javaの例外がどのように存在していますか?
    異常がクラスの形で存在します。
  • 例外が発生すると、JVMの仮想マシンは、自動的に新しい例外オブジェクトであり、私たちは、コンソールの異常を見ることができるように、例外オブジェクトを投げます。
  • 例外クラスjava.langパッケージでは、あなたがクラスをインポートしないでください。
package ExceptionPcakage;

public class ExceptionTest1 {

	public static void main(String[] args) {
//	 通过异常类“实例化”异常对象
		int a=9,b=0;
		NumberFormatException fe =new NumberFormatException("数字格式化异常");
		
		System.out.println(fe);
	}
}

UML

UMLとは何ですか?使用は何ですか?
UMLは、統一モデリング言語です。
長いオブジェクト指向のプログラミング言語として、UMLがあるので、アイコンベースの言語の一種(描画)、UMLは、使用される唯一のJavaではありません。UMLダイアグラム通常、ソフトウェアアーキテクトやシステムアナリスト、ソフトウェアアーキテクトです、人員。

  • 図は、UMLデザインであり、クラス、フロー・シーケンスとの間の関係が実行され、オブジェクト等の状態を記述することができます。図面上のラベルは、標準言語であるため、同じ建物のようなカバーは、Gailouは建築家画用紙始まります前に、標準のシンボルは、限り建設に従事して理解することができ、図面上のシンボルです。
  • プログラマとして、あなたは理解する必要があります。

エラーと例外

オブジェクトの下でのThrowableは(例外をスローすることが)あり
Throwableの下に2つのブランチがあります。エラー(、終了JVMを扱うことができない)と例外(処理することができます)

  • 例外の下に2つの分岐があります。
    異常:(これらの例外の名前のインクレディブルのコンパイル時間が前処理されたか、コンパイラエラーでなければなりません。
    のRuntimeException:異常、準備段階に関わらず、実行時の処理することができます。
  • どちらが運用段階で行われ、コンパイル段階では唯一の運用フェーズは、新しいオブジェクト可能性があるため、あまりにも起こるだろうされていません。
    限り、エラーが発生したとして、Javaプログラムが実施されたプログラムの終了、終了JVMの結果だけです。エラーを処理することはできません。
  • 異常(未確認の例外は、制御不能な異常)(未確認の例外は、例外を確認)し、誤動作が時間差をコンパイル?
    異常の高い確率は、コンパイル時に起こりました。
    例:あなたが病気を取得し、発生の確率が高いことができれば、外の雨です、あなたは傘を持っていない、外出します。我々は前に傘を持参する必要がありますので。これは、傘の前処理です。
    異常の発生確率が高いのいくつかのためになるよう、必要性は、実行する前に前処理します。
  • 異常なランニングの低いの発生確率。
    このようなこれらの確率のため異常に低い航空機の車輪のうちヒットしていると、それは、前処理を必要としません。(前処理、運賃もあれば)。

Javaは例外の処理の両方の方法

  • 最初:法上の位置声明では、キーワードはスロー使って、上の1を投げました。誰が私が投げた人を呼び出します。
  • 第二:利用ください... catch文キャッチ例外。私がキャッチされたため、誰が、わかりません。
    たとえば:エラーが会社に千元の損失を引き起こしたので、私は、当社グループの売上高のメンバーです。(例外として)
    最初の方法:私は上のスロー[異常]私のリーダーシップを告げ
    補うために私自身のポケット:第二のアプローチ。[異常]キャッチ
  • 質問:例外が発生した場合、私はスローを選んだ、異常続け、その後、呼び出し側が均等に両方を扱う例外を処理するためにこの問題に対処するために、発信者のニーズを私の発信者を投げました。
  • 注:あなたは、この例外が発生したプログラムの終了を知っているJVMは、JVM投げ、mainメソッドが投げるし続け、最後に主な方法を投げ、投げにされている場合はJavaの例外が発生します。
  • キャストはキャッチが問題を解決するため、呼び出し元に投げシルクの責任、に等しいです。
  • 私たちは、主に、例外をコンパイルするに対処します。
    ここに画像を挿入説明
  • 親は、その親クラスの例外クラス記載の、異常複数のライトバックスローすることができスロー。
  • 我々は唯一の例外処理を実行することはできません、コンパイルすることができ、異常に対処する必要があります。
  • オブジェクトのアドレス異常が発生したときに保存されたパラメータのキャッチ(例外の型パラメータ名)。キャッチ実行、後続のコードを実行することができるが、tryブロックコードは、異常な行を実行しません。
  • 限り異常なキャプチャモードが報告されていない使用など、後続のコードがリターンに対応する、この方法、すなわち、方法は終了を行いません。
  • tryブロックとラインが異常の後ろに表示された場合、コードは、コードの実行を変更しません。
  • 自動的に選択するには、エラーの可能な限り具体的なタイプとしてキャッチしようと複数のcatch()を、書くことができ、サブクラスの種類は(小から大に上から下へ、)親クラスの前でキャッチを作成する必要はありません。
  • 使用することができるキャッチのjdk8型または異常(「」)|異常な複数の選択。
  • あなたは、発信者のノウハウで開発する場合は、呼び出し元、実際の状況に応じてモードの選択をしましょう。

メソッドの例外オブジェクト

  • getMassage()は、非常に簡単な説明を取得します。

ここに画像を挿入説明

  • 例外スタックトレース情報を印刷するためのprintStackTrace()。印刷するには、非同期スレッドの方法を使用します。(非同期出力を例外情報を印刷)
    ここに画像を挿入説明
    ビュー例外情報:太陽が彼女自身の書き込みから見下ろして、見ずに書かれました。
  • thorw手動で例外をスローします。

最終的に

  • finally節ではtryブロックに異常が現れた場合でも、最後に実行され、実施される、finally節は一人で書くことはできません、一緒に表示してみてください必要があります。
  • 使い切った流れをオフにするには、異常はまた閉じました。
    ここに画像を挿入説明
  • そして最後に、直接キャッチしない、一緒トライで使用することができます。
  • 単独で使用することがないようにしてください。
  • 実行方法端を返しますが、でも実行されますfinallyブロックで戻りトライして、最終的な実装を返します。ついにハハ、お金を充電するが、しかし、JVMがついに終了コードは、実行されません。
  • 最終的には、顔の質問
    ここに画像を挿入説明
    上から下に行われたJava。100を返します。
    • 最終の違いは、最終的には、確定します
      ここに画像を挿入説明
  • ファイナライズGCはコールのために責任があります。

どのように独自の例外クラス

  • JDKの組み込み日会社実際の開発では、例外は確かに十分ではありません提供し、当社の事業の多くは、おそらく異常JDKである、そして我々は、カスタム例外を必要としません。
  • 最初のステップ:継承の例外またはRuntimeExceptionがそのクラスを書きます。
  • ステップ2:Stringパラメータで、2つのコンストラクタは、パラメータのないを提供します。
  • プログラムのどこに異常、使用Thowさん手動で例外をスローします。
    ここに画像を挿入説明
  • 方法を覆う場合、オーバーライドされたメソッドは、より多くの(より広い)親クラスの例外はより少なくてもよい投げることはできません。
  • 小演習:
    ここに画像を挿入説明
    //メインクラス
package Package1;

import java.util.Scanner;

public class ExceptionPractice1 {
    public static void main(String[] args) {
        UersService aa = new UersService();
        Scanner Scan = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String Name = Scan.next();
        System.out.println("请输入密码:");
        String Code = Scan.next();
        try {
            aa.register(Name,Code);
        } catch (MyException e) {
            e.printStackTrace();
        }

    }
}

//ユーザクラス

package Package1;

public class UersService {
    private String AccountName;
    private String AccountNameCode;

    public UersService() {
    }

    public UersService(String accountName, String accountNameCode) {
        AccountName = accountName;
        AccountNameCode = accountNameCode;
    }

    public String getAccountName() {
        return AccountName;
    }

    public void setAccountName(String accountName) {
        AccountName = accountName;
    }

    public String getAccountNameCode() {
        return AccountNameCode;
    }

    public void setAccountNameCode(String accountNameCode) {
        AccountNameCode = accountNameCode;
    }
//    注册
    public void register(String a,String b)throws MyException{
        if(a==null||a.length()>14||a.length()<4)
            throw new MyException("用户名请长度应为6到16");
        else if(b.length()<6||b.length()>18)
            throw new MyException("密码长度应为6到18");
        else
            System.out.println("登入成功!欢迎你:"+a);
    }

}
//自定义异常类

```go
package Package1;

public class MyException extends Exception{
    public MyException() {
    }

    public MyException(String message) {
        super(message);
    }
}

ここに画像を挿入説明

公開された50元の記事 ウォンの賞賛8 ビュー3058

おすすめ

転載: blog.csdn.net/jiahuan_/article/details/105231642