A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黎阳05 中级黑马   /  2013-5-2 21:05  /  1473 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黎阳05 于 2013-5-2 21:50 编辑

一个try可以有多个catch,但是可以没有catch,直接finally吗?

7 个回复

倒序浏览
try{}
finally{}
也是一种组合,可以的
回复 使用道具 举报
可以的。
有三个结合格式:
                                  1、try                                        2、try                        3、try
                                        {                                           {                                   {
                                        }                                           }                                   }
                                        catch ()                                   finally                   catch()
                                        {                                           {                                   {
                                        }                                           }                                   }
                                                                                                                   finally
                                                                                                                   {
                                                                                                                }
回复 使用道具 举报
可以的。
有三个结合格式:
                                  1、try                                        2、try                        3、try
                                        {                                           {                                   {
                                        }                                           }                                   }
                                        catch ()                                   finally                   catch()
                                        {                                           {                                   {
                                        }                                           }                                   }
                                                                                                                   finally
                                                                                                                   {
                                                                                                                }
回复 使用道具 举报
关于try、catch、finally的解释:
1:try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。
2:catch语句:catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。
catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。
也可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型。
3:finally语句:try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行。通过finally语句可以指定一块代码。无论try所指定的程序块中抛弃或不抛弃例外,也无论catch语句的例外类型是否与所抛弃的例外的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等
回复 使用道具 举报
首先:finally中定义的通常是 关闭资源代码。因为资源必须释放。finally只有一种情况不会执行。当执行到System.exit(0); finally 不会执行。
异常处理语句有三个结合格式:
如下:
1,Try
{
需要被检测的代码;
}
Catch
{
处理异常的代码;
}
Finally
{
一定会执行的代码;
}
2,Try
{ }
Catch()
{ }
3 ,Try
{ }
Finally
{ }

所以楼主说的属于第三种格式,当没有catch的时候,直接finally也是可以的。
回复 使用道具 举报
拎砖提示,如果问题没解决请继续追问,如果已解决,请修改帖子为已解决,谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马