Java 入门 六 (Java 异常处理)
李守宏老师讲的很详细就摘录过来 懒得写了
1:什么是异常:
异常是指程序运行时候发生的错误.这里特指运行时,编译调试产生的那些不叫异常.设置异常处理是为了让程序不会发生不可预知的错误,然后停止了.
throw异常:java程序执行时出现的异常,会生成一个异常对象.这个对象由java自己实例化,然后交给java运行时,这个叫throw异常.
catch异常:运行时接收到异常对象时,寻找能处理这个异常的代码,这个叫catch异常
java中的每一个方法可能抛出的异常会在jdk文档中说明,我们只需把这个异常捕获即可.但不是所有的异常都需要捕获处理.
2:异常分类
Error:错误,由Java虚拟机生成抛出,程序不做处理.
Exception:所有异常类的父类,一般需要用户显式声明捕获
Runtime Exception :一类特殊的异常,如0除,下标越界等,处理比较繁琐.一般交给系统缺省的异常处理程序处理(程序不做处理)
3:异常如何被处理.
Try{
//可能抛出异常的语句
} catch(Execption1e) {
处理
}catch(Execption2 e) {
处理
}finally {
最后要做的(一定执行)
}
解释:
a:try代码包含可能产生异常的语句,try代码后边可以有一个或者多个catch,每个catch后面声明其能处理的特定异常并提供处理方法.
b: 当异常发生时,程序终止执行,根据错误类型执行相应catch中的代码.
c: finally语句无论是否有异常都要执行.
4:自定义异常
java也可以自定义异常,步骤如下:
a:通过继承java.lang.Exception 类声明自己的异常类.
b:在方法的适当位置生成自定义异常的实例,并用throw抛出.
c:在方法的声明部分用throw声明该方法可能抛出的异常.
Java 异常处理的原则
1:尽可能的处理异常
要尽可能的处理异常,如果条件确实不允许,无法在自己的代码中完成处理,就考虑声明异常。如果人为避免在代码中处理异常,仅作声明,则是一种错误和依赖的实践。
2:具体问题具体解决
异常的部分优点在于能为不同类型的问题提供不同的处理操作。有效异常处理的关键是识别特定故障场景,并开发解决此场景的特定相应行为。为了充分利用异常处理能力,需要为特定类型的问题构建特定的处理器块。
3:记录可能影响应用程序运行的异常
至少要采取一些永久的方式,记录下可能影响应用程序操作的异常。理想情况下,当然是在第一时间解决引发异常的基本问题。不过,无论采用哪种处理操作,一般总应记录下潜在的关键问题。别看这个操作很简单,但它可以帮助您用很少的时间来跟踪应用程序中复杂问题的起因。
若要通知一个应用程序特有的问题,有必要将应用程序转换为不同形式。若用业务特定状态表示异常,则代码更易维护。从某种意义上讲,无论何时将异常传到不同上下文(即另一技术层),都应将异常转换为对新上下文有意义的形式。
Java 异常处理是使用 Java语言进行软件开发和测试脚本开发中非常重要的一个方面。对异常处理的重视会是您开发出的代码更健壮,更稳定。