黑马程序员技术交流社区

标题: JAVA语言如何进行异常处理 [打印本页]

作者: 吴凯    时间: 2013-4-29 23:16
标题: JAVA语言如何进行异常处理
本帖最后由 吴凯 于 2013-5-1 01:35 编辑

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

作者: 一川    时间: 2013-4-29 23:43
throws捕获并向外抛出异常
throw抛出异常
try catch是内部捕获异常并做自定义处理
finally是无论是否有异常都会被处理的语句,除非在finally前存在被执行的System.exit(int i)时除外
一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
作者: Sword    时间: 2013-4-30 01:50


throws表示方法可能抛出的异常类型,位于参数体与方法体之间。
throw用来抛出具体的异常对象,
try表示检测可能发生异常的代码,需要被检测的代码放在try花括号中。
catch表示捕获异常发生时java虚拟机创建的异常对象。
catch圆括号()中是异常引用变量的声明,用来存放异常对象的堆内存地址。
catch花括号{}中是处理异常的代码。
finally表示发生异常与否,都会执行finally花括{}中的代码。
try快中能抛出异常,但只能使用throw抛出具体异常对象。
在try块中抛出异常对象,就得使用catch来捕获。

Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住
要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在
Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执
行return之前执行,一般结构如下:
try{
   程序代码
}catch(异常类型1 异常的变量名1){
   程序代码
}catch(异常类型2 异常的变量名2){
   程序代码
}finally{
   程序代码
}        catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定
义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用
这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要!        Java异常处理的目
的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取
Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。        Java异常处理是Java语言的
一大特色,也是个难点,掌握异常处理可以让写的代码更健壮和易于维护
作者: cowthan    时间: 2013-4-30 01:57
try里可以抛出异常,所以才用try--catch结构去捕捉异常啊,catch里也能抛出异常
作者: 吴凯    时间: 2013-4-30 02:26
多谢指点的哥们
作者: 符立波    时间: 2013-4-30 09:45
好好学习,天天向上啊..............
作者: 花开花落总相似    时间: 2013-4-30 14:28
    动手打几行代码出来试一下 你自己会理解的
作者: 黄玉昆    时间: 2013-4-30 23:18
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2