カスタム例外
public class MyException extends ArithmeticException{
private int detail;
public MyException(int a){
this.detail = a;
}
//打印异常的信息
@Override
public String toString() {
return "MyException{" +
"detail=" + detail +
'}';
}
}
public class Test {
static void test(int a){
System.out.println("传递的参数是:"+ a);
if(a > 10){
throw new MyException(a);
}
System.out.println("OK");
}
public static void main(String[] args) {
try{
test(99);
}catch (MyException e){
System.out.println("MyException ===》》》" +e);
e.printStackTrace();//实际上也调用toString方法了
}
}
}
结果:
传递的参数是:99
MyException ===》》》MyException{detail=99}
MyException{detail=99}
at InnerCLass.Test.test(Test.java:7)
at InnerCLass.Test.main(Test.java:13)
異常使用経験
- キャッチの試行処理を支援しながら、例外を回避するためのロジックの合理的な使用(古い犬として安定)
- 複数のキャッチが使用されている場合、省略を防ぐために最後にキャッチ例外が追加されます(キャッチアップとキル)
- 異常なコードが生成されるかどうかわからない場合は、try catchを使用してください(できればエラーを強制終了するのではなく、強制終了してください)
- ポットを他の人に捨てるのではなく、例外に対処するようにしてください。(あなた自身の問題を解決してください)
- ビジネスニーズと例外の種類(地域の状況による)に基づいて例外を処理する方法
- 最終的にブロックを追加して、占有されているリソースを解放してみてください。(たわごとなしでそのピットを占有することはできません)