标签:
Java程序运行过程中所发生的异常事件可分为两类:
public class ExceptionTest01{ public static void main(String[] args) { String friends[]={"lisa","bily","kessy"}; for(int i=0;i<5;i++) { System.out.println(friends[i]); } System.out.println("\nthis is the end"); } }
public class ExceptionTest02 { public static void main(String[] args){ String user[] = {"lilei","lucy","lisa"}; try{ for(int i=0; i<5; i++) { System.out.println(user[i]); } }catch(java.lang.ArrayIndexOutOfBoundsException e){ System.out.println("异常:" + e.getMessage()); } System.out.println("程序结束!"); } }
异常处理块的一般形式
try{ // 要监控错误的代码块 methodGeneratingException(); } catch (Exception e) { // Exception e 的异常处理程序 } finally{ // 在 try 结束前要执行的代码块 cleanup(); }
常见 异常类
捕获异常
捕获异常是通过try-catch-finally语句实现的。
try{ ...... //可能产生异常的代码 }catch( ExceptionName1 e ){ ...... //当产生ExceptionName1型异常时的处置措施 }catch( ExceptionName2 e ){ ...... //当产生ExceptionName2型异常时的处置措施 } {finally{ ...... //无条件执行的语句 } }
捕获异常的第一步是用try{…}语句块选定捕获异常的范围。
在catch语句块中是对异常对象进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。
try { …… } catch(ClassCastException ex){ …… } catch(NumberFormatException ex){ …… } catch(Exception ex){ …… } // 此句必须放在最后!
try { startFaucet(); waterLawn(); } catch (BrokenPipeException e){ logProblem(); } finally { stopFaucet(); }
声明抛弃异常
public void readFile(String file) throws IOException { …… // 读文件的操作可能产生IOException类型的异常 FileInputStream fis = new FileInputStream(file); ..…… }
重写方法声明抛弃异常原则
public class A { public void methodA() throws IOException { …… } } public class B1 extends TestA { public void methodA() throws FileNotFoundException { …… } } public class B2 extends TestA { public void methodA() throws Exception { …… } }
人工抛出异常
IOException e =new IOException();
throw e;
throw new String("want to throw");
class MyException extends Exception { private int idnumber; public MyException(String message, int id) { super(message); this.idnumber = id; } public int getId() { return idnumber; } }
用户自定义异常类
public class ExceptionTest05{ public void regist(int num) throws MyException { if (num < 0) { throw new MyException("人数为负值,不合理",3); } System.out.println("登记人数" + num); } public void manager() { try { regist(100); } catch (MyException e) { System.out.print("登记失败,出错种类"+e.getId())); } System.out.print("本次登记操作结束"); } public static void main(String args[]){ ExceptionTest05 t = new ExceptionTest05(); t.manager(); } }
标签:
原文地址:http://www.cnblogs.com/FLFL/p/4425744.html