java使用 try catch捕获异常
try{
//业务实现代码
...
}
catch(Exception e) {
alert 输入不合法 goto retry
}
访问异常信息 :如果需要在catch块中访问异常信息,可通过访问catch块后的异常参数来获得。当java运行时决定调用某个catch块来处理异常对象时,会将异常对象赋给catch块后的异常参数。
异常对象包含几个常用方法: getMessage() 返回异常的详细信息描述字符串 。
printStackTrace() 将该异常的跟踪栈信息输出到标准错误输出。
printStackTrace( PrintSream s): 将该异常的跟踪栈信息输出到指定输出流
、 getStackTrace(): 返回该异常的跟踪栈信息
2:异常处理机制提供了finally块。不管try块中的代码是否出现异常,也不管哪个catch块被执行,甚至在catch块中执行了return 语句 finally块总会执行
3:Checked异常和Runtime 异常
checked异常时可以被处理(修复的异常)所以java程序必须显示处理checked异常。checked异常(没有完善错误处理的代码根本不会执行)
使用throws声明抛出异常:当前方法不知道如何处理这种类型的异常 该异常由上一级调用者处理,如果main 方法也不知道如何处理这种类型的异常
将该异常交给JVM处理:打印跟踪栈信息 并终止程序运行
throw语句抛出的不是 异常类 而是一个异常实例
package com.card.entity; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.*; public class Demo { public static void main(String []args)throws Exception{ // try{ // int a=Integer.parseInt(args[0]); // int b=Integer.parseInt(args[1]); // int c=a/b; // System.out.println("----result"+c); // } catch(IndexOutOfBoundsException|NumberFormatException|ArithmeticException ie){ // //System.out.println(" 3 format error"); // }catch(Exception e){ //System.out.println(" unknown error"); //} //Date d=null; //try{ //System.out.println(d.after(new Date())); //}catch(NullPointerException e){ //System.out.println(" error"); //}catch(Exception er){ //System.out.println(" unknown error"); //} // FileInputStream fis=null; // try{ // fis=new FileInputStream("a.txt"); // }catch(IOException ioe){ // System.out.println(ioe.getMessage()); // return ; // // } finally { // if(fis!=null){ // try{ // fis.close(); // }catch(IOException ioe){ // ioe.printStackTrace(); // } // } // System.out.println("将执行finally块"); // } boolean a=test(); System.out.println(a); } public static boolean test(){ try{ return true; }finally { return false; } } }