首页 > 代码库 > java异常处理

java异常处理

背景介绍:

在用到java的一些类库时,会发现有些类库用的时候必须要加上try-catch或者throw的关键词。

抽象化描述这个问题:

问题抽象:

1 类库地作者可以检测出运行中出现地问题,但是不知道怎么处理这个问题。

2 使用这个类库地用户知道怎么怎么去处理这个问题,但是不知道怎么检测他们

解决:

异常(exception)的作用就是解决这个问题。

1如果一个方法不能决定怎么处理程序中非正常流程出现的问题,那么它可以把这个问题丢(throw)给调用者来处理。

2 如果调用者不愿意处理那么可以继续丢(throw)给下个调用者,或者如果愿意处理这个问题 那么就接收(catch)这个

  问题,然后进行处理。

java异常hierarchy

 

 

1 注意:我们所关注的异常是指非error和runtime的异常,也即checkedException(可以被编译器检测的异常)

2 error通常是指无法恢复的错误,比如超过系统性能的上界。这个error是由系统抛出的。

3 RuntimeException是由程序员代码的问题 比如空指针

 

具体操作:

java中的checkedException是个对象。

所以抛出异常时,需要先选定合适的异常种类,然后生成实例抛出

try    {     // code     }   catch (ExceptionType e)    {     // exception handling code     }    

运行流程:

当代码遇到异常时,它会忽略其后的代码,直接跳到其相应的catch中运行

完整的实例:

除0异常处理

public class JavaExceptionTest {    public static void main(String[] args) {        // TODO Auto-generated method stub        try        {            double a=1/0;        }        catch(ArithmeticException e)        {            System.out.println(e.getMessage());        }    }}

java的异常类别:

http://www.tutorialspoint.com/java/java_builtin_exceptions.htm

java 异常教学文档

http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

java异常处理