您的位置:首页 > 职场人生

黑马程序员-----------java异常处理

2015-05-15 16:09 246 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

1、Java提供的是异常处理的抓抛模型。

2、异常处理是通过try-catch-finally语句实现的。



try

{

...... //可能产生异常的代码

}

catch( ExceptionName1 e )

{

...... //当产生ExceptionName1型异常时的处置措施

}

catch( ExceptionName2 e )

{

...... //当产生ExceptionName2型异常时的处置措施

}

[ finally{

...... //无条件执行的语句

} ]

3、 try

捕获异常的第一步是用try{…}语句块选定捕获异常的范围,将可能出现异常的代码放在try语句块中。

catch (Exceptiontypee)

在catch语句块中是对异常对象进行处理的代码。每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

finally

捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。不论在try、catch代码块中是否发生了异常事件,finally块中的语句都会被执行。

finally语句是可选的

4、如果明确知道产生的是何种异常,可以用该异常类作为catch的参数;也可以用其父类作为catch的参数。异常类的父类要放在异常类的子类的后面。

可以用ArithmeticException类作为参数,也可以用RuntimeException类作为参数,或者用所有异常的父类Exception类作为参数。但不能是与ArithmeticException类无关的异常,如NullPointerException,那么,catch中的语句将不会执行。

5、捕获异常的有关信息:

与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。

getMessage( ) 方法,用来得到有关异常事件的信息

printStackTrace()用来跟踪异常事件发生时执行堆栈的内容。

6、运行时异常和编译时异常

前面但使用的异常都是RuntimeException类或是它的子类,这些类的异常的特点是:即使没有使用try和catch捕获,Java自己也能捕获,并且编译通过 ( 但运行时会发生异常使得程序运行终止 )。

如果抛出的异常是IOException类的异常,则必须捕获,否则编译错误。



7、声明抛出异常是Java中处理异常的第二种方式

如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。

在方法声明中用 throws 子句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。

8、Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要人工创建并抛出

首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。

IOException e =new IOException();

throw e;

可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误:

throw new String("want tothrow");

1、 重写方法不能抛出比被重写方法范围更大的异常类型(均指非运行时异常)

2、 自定义异常:自己定义的异常类,通常情况下继承RuntimeExciption

自定义异常的作用:看见异常类的名字,就知道出现了什么问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: