异常处理
1、程序错误一般有三种:语法错误,运行错误和逻辑错误。对于语法错误可以有编译器来检查得到错误的位置和原因,从而可以纠正。对于运行错误则用异常处理来解决。
Throwable
Exception
Error
ClassNotFoundException
CloneNotSupportedException
IOException
AWTExcepion
RuntimeException
ArithmeticException
NullPointerException
IndexOutOfBoundsException
LinkageError
VirtualMachineError
AWTError
2、异常类
所有异常类型都是内置类Throwable的子类。因此,Throwable在异常类层次结构的顶层。紧接着Throwable下面的是两个把异常分成两个不同分支的子类。
一个分支是Exception。该类用于用户程序可能捕捉的异常情况。它也是你可以用来创建你自己用户异常类型子类的类。在Exception分支中有一个重要子类RuntimeException。该类型的异常自动为你所编写的程序定义并且包括被零除和非法数组索引这样的错误
另一个分支是系统错误:由java虚拟机抛出并在Error类中描述,Error类描述了内部的系统错误,一般很少发生该类错误,一旦发生除了通知用户结束程序外,几乎什么也不能做
异常例子:
ClassNotFoundException:企图使用一个不存在的类,当程序调用一个类时找不到该类就会发生该异常(通常是因为写错类名字引起的)
IOException:与输入输出相关的操作,比如打开一个不存在的文件,无效的输入等
运行异常:由RuntimeException描述。包括编程错误,比如数组越界等
ArithmeticException:一个整数除以零
NullPointerException:企图通过一个空变量访问一个对象
IndexOutOfBoundsException:数组下标越界
3、必检异常和免检异常
RuntimeException和Error以及他们的子类都是免检异常,其他所有的异常为必检异常。对于必检异常编译器会强制程序员检查并处理,免检异常指的是编译器不会去检查你是不是处理该异常了。
4、异常的处理方式
(1)抛出。方法通过在它的声明中使用throws语句指定它可以抛出的异常。同时使用throw语句抛出异常。
当不在方法中直接捕获被检查的异常时,必须指定它可以抛出的所有被检查的异常。抛出异常所做的两部分工作是:在它的声明中使用throws语句指定它可以抛出的异常,同时使用throw语句抛出异常。
在方法中声明可能出现的异常,这样做的目的是让方法可以告诉编译器它可能会产生哪些异常,从而要求它的使用者必须考虑对这些异常的处理,这样就使异常及时得到处理,减少了程序崩溃的几率。
(2)捕获。使用try-
java异常处理 来自淘豆网m.daumloan.com转载请标明出处.