Java课件 11-异常处理学习资料.ppt
与其他程序设计方式相同,Java的异常处理也可以嵌套。在嵌套的异常处理结构中,如果内层的catch语句不能捕获异常,则程序会将异常对象抛给外层的try语句,由外层的catch进行处理。try{ try{ }catch(Exception1e1){ }}catch(Exception2e2){}用户定义的异常类型必须是Throwable的直接或间接子类,Java推荐用户定义的异常类型以Exception为直接父类。创建用户自定义异常时,需要完成以下工作:声明一个新的异常类,使之以Exception类或其他某个已经存在的异常类为父类。为新建的异常类定义属性和方法,或者重载父类的属性和方法,使这些属性和方法能够体现该异常类对应的错误信息。publicclassTest{ publicstaticvoidmain(String[]args){ try{ thrownewMyException(异常); }catch(MyExceptione){ System.out.println(e.getMessage()); } }}classMyExceptionextendsException{ publicMyException(Stringstr){ super(str); }}异常处理模型基于三种操作:声明异常,抛出异常,捕获异常。method1(){try{invokemethod2;}catch(Exceptionex){processexception;}}method2()throwsException{if(anerroroccurs){thrownewException();}}声明异常抛出异常捕获异常异常处理是Java程序中重要的一个方面,本讲详细讲述了Java的异常处理机制、异常的抛出与捕获、异常的嵌套处理、用户自定义异常的有关知识。异常处理分离了错误处理代码和常规代码,增强了程序的可读性和可维护性。本讲的重点是理解Java异常处理机制以及掌握异常处理的方法。编写一个方法,完成输入一个整数的功能。(如果输入有误提示重新输入,使用异常处理处理出现的异常)publicclassmultiCatch{publicstaticvoidmain(String[]args){inti=0;intj=0;try{i=Integer.parseInt(args[0]);j=Integer.parseInt(args[1]);System.out.println(i+/+j+=+i/j);}catch(NumberFormatExceptione){System.out.println(NumberFormatException);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(ArrayIndexOutOfBoundsException);}catch(Exceptione){System.out.println(Exception);}}}数组一旦创建,其大小不能再改变。下面代码是修改数组大小吗?int[]mylist;mylist=newint[10];mylist=newint[20];Java的异常处理机制异常的声明、抛出与捕获异常的嵌套处理用户自定义异常什么是异常异常处理范例异常是指程序运行过程中发生了不正确的或者意想不到的错误,而使得程序无法继续执行下去的情况。例如,在内存不足、数组越界、文件找不到或者分母为零的情况下,就会出现异常。异常处理是一种非常优雅的响应错误的方式。异常处理不仅可以避免程序发生崩溃,而且可以向程序发出信号。publicclassHello{publicstaticvoidmain(String[]args){System.out.println(Hello+args[0]);}}我们向以前一样用下面命令编译并执行该程序:javacHello.javajavaHello这时,便引发了异常,