Javaの異常な共通フォーマット
try(
// 创建一些Socket连接 IO输出流...
){
// 可能会出现错误 通常是访问外部文件 链接网页
}catch(Exception ex){
// catch 根据 异常类型进行匹配来捕捉 相应类型的异常
// catch到了一个其实并没有checked Exception ,java程序会报错,因为java明确知道这个异常不会发生
}
/*
还有一种处理错误的方法 就是 向上抛出异常,在方法签名里添加 throws xx异常
*/
通常の治療は通常、例外例外です
コード内のエラー例外で、私たちは、このような一般的なメモリの不足、ディスク容量のアクセス障害と上のように、処理できないために。
すべての親のスロー可能オブジェクト例外
であっ例外とエラー
とRuntimeExceptionは、例外やエラーの親をチェックされます
異なる方法で処理されたチェックを2種類に分け、未チェックされます
チェック例外は、例外に対処するために2つの以上の方法を使用する必要があります
し、チェックされない例外の例外処理することはできません
が、実行時例外がスローされます
ように
String str = null;
null.toLowercase();
// 此时抛出了 nullpointerException
カスタム例外
エラーがスローされたときに、私たちの共通の例外クラスへのJavaパッケージは、業務上の必要に応じて、独自の例外クラス、エラーメッセージとコールスタックの種類を作成することができます。
public class MyRuntimeException extends RuntimeException{
//可以用 IDE 自动生成
public MyRuntimeException (){}
public MyRuntimeException (String message){
super(message);
}
public MyRuntimeException (String message, Throwable cause){
super(massage,cause);
}
public MyRuntimeException (Throwable cause){
super(cause);
}
}
// 封装好 上面的类
public void callThrowRTException(){
try{
// 下列会抛出 nullpointerException
Object n = null;
n.toString();
}catch(Exception ex){
// 捕捉到 异常之后 抛出 自定义的异常类
throw new MyRuntimeException(" 执行callThrowRTException 出错",ex);
}
}
キャッチ - - フォームトライを完了し、最終的
3つのフォームは
してみてください{
}catch{
}finally{
finally 里 最好不要写 return 语句。
若写了有return 则会把 try,catch的语句覆盖掉,相当于无视try ,catch中的return。
}
try{
}catch(**ClassNotFoundException** e){
}catch(**IOException** e){
}
// 简化 版本:
{試します
}catch(ClassNotFoundException | IOException e){
}
キャッチの種類の可能な複数を持つことができない、またはエラーになり
、例外などのキャッチなどからClassNotFoundExceptionがキャッチすることはできません
最終的にはA変数の代入では、代入が無効である、でキャッチ、試しに変数の戻り値を持っています。
ノートは
、Lingboweibuなどの異常できない方法との間にジャンプするための手段として機能します。
資源の非常に異常な消費をキャプチャするため。