黑马程序员技术交流社区
标题:
异常问题
[打印本页]
作者:
毕博
时间:
2012-4-24 12:25
标题:
异常问题
毕老师视频里异常处理语句说了三种 请问 try 这种具体怎么用 不太明白
{
}
finally
{
}
作者:
耿少雄
时间:
2012-4-24 12:50
try语句用{}指定了一段代码,该段代码可能会抛弃一个或多个异常。
catch语句的参数类似于程序的声明,包括一个异常类型和一个异常对象。
异常类型必须为Throwable类的子类,它指明了catch语句所处理的异常类型,异常对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的程序。
JAVA运行时系统从上到下分别对每个catch语句处理的异常类型进行检测,直到找到类型相匹配的catch语句为止。
这里类型匹配指catch所处理的异常类型与生成的异常对象的类型完全一致或者是它的父类。
因此,catch语句的排列顺序应该是从特殊到一般。也可以用一个catch语句处理多个异常类型,这时它的异常类型参数应该是这多个异常类型的父类,程序设计中要根据具体的情况来选择catch语句的异常处理类型。
异常被异常处理程序捕获和处理,异常处理程序紧接在try块后面,且用catch关键字标记,因此叫做“catch块”。如果一个程序使用了异常规范,我们在调用它时必须使用try-catch结构来捕获和处理异常规范所指示的异常,否则编译程序会报错而不能通过编译。这正是JAVA的异常处理的杰出贡献,它对可能发生的意外及早预防从而加强了代码的健壮性。
异常处理语句的一般格式是:
try {
// 可能产生异常的代码
}
catch (异常对象 e) {
//异常 e的处理语句
}catch (异常对象 e1) {
//异常 e的处理语句
}catch (异常对象 e2) {
//异常 e的处理语句
}
作者:
金超
时间:
2012-4-24 14:41
try{这里放可能出现异常的代码}
catch(异常实例对象 e){这里放处理异常的代码}
finally{放在这里的代码表示一定会执行的代码}
作者:
Evangelvii
时间:
2012-4-24 14:51
如上面所说的
补充一下
配对方式一:
try{
}catch{
}
配对方法二:
try{
}catch{
}finally{
}
配对方法三:
try{
}finally{
}
catch和finally都不是必须的,try和catch不是必须配对的
但如果有try 就必须选一个配对 ,可以是catch 也可以是finally,或者两个都选
作者:
τ、高童鞋ゝ
时间:
2012-4-24 14:54
try句块:
try 块的通用语法形式是:
try {
program-statements
} catch (exception-specifier) {
handler-statements
} catch (exception-specifier) {
handler-statements
} //...
try 块以关键字 try 开始,后面是用花括号起来的语句序列块。try 块后面是一个或多个 catch 子句。每个 catch 子句包括三部分:关键字 catch,圆括号内单个类型或者单个对象的声明——称为异常说明符,以及通常用花括号括起来的语句块。如果选择了一个 catch 子句来处理异常,则执行相关的块语句。一旦 catch 子句执行结束,程序流程立即继续执行紧随着最后一个 catch 子句的语句。try 块引入局部作用域,在 try 块中声明的变量,包括 catch 子句声明的变量,不能在 try 外面引用。
作者:
马伟恒
时间:
2012-4-24 15:42
本帖最后由 马伟恒 于 2012-4-24 15:43 编辑
try{程序代码}
catch(异常类型1 异常的变量名1){程序代码}
catch(异常类型2 异常的变量名2){程序代码}
finally{程序代码}
catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要!
Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2