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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵鸿富 中级黑马   /  2013-4-26 19:08  /  8085 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单独使用try不用catch可以抛出异常吗?

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1 希望以后自己实验过了再问

查看全部评分

10 个回复

倒序浏览
本帖最后由 殇_心。 于 2013-4-26 19:12 编辑

是可以。
但是必须得使用finally。
异常处理3种方式:( ... 代表代码块。 )
方式一:
try
{
...
}
catch(Exception e)
{
....
}
方式二:
try
{
...
}
finally
{
....
}
方式三:
try
{
...
}
catch(Exception e)
{
....
}
finally
{
...
}

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
楼主,如果你说的是单独try{ ... },编译都过不去的谈何抛异常,如果你是try{ ... }finally{ ... }这种是可以的,因为catch()块是让你处理异常的,你不处理异常也可以,只不过可能会导致程序健壮性不太好。

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
try是不单独使用的,要和catch一块使用。try是检验有异常的代码。catch是解决异常的。记住不可以单独使用

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
如果单独使用,要报错的

评分

参与人数 1黑马币 +6 收起 理由
王怀亮 + 6

查看全部评分

回复 使用道具 举报
本帖最后由 sos3542 于 2013-4-27 16:18 编辑

单独使用try不用catch抛出异常,得Finally必须要执行语句,try不能单独使用,否则会报错的。
try
{
       需要被检测异常的代码;
}
catch
{
       处理异常的代码;
}
finally
{
       一定会执行的语句;
}
注意:1、finally中定义的通常是关闭资源代码,因为资源必须释放
          2、finally只有一种情况不会执行,当执行system.exit(0);不会执行
          3、如果父类或者接口没有异常抛出时,子类覆盖出现异常时,只能try不能抛
有4种结合方式如下:
1
try
{
}
catch
{
}
2、try
{
}
catch
{
}
finally
{
}
3try
{
}
finally
{
}
4try
{
}
多个catch
{
}
catch
{
}
  ……

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
try...catch语句的一般形式为:
try{
语句块 //执行该语句块,可能会发生异常
}catch(异常类型e){
异常发生时要执行的语句块
}finally{
无论异常发生与否,都要执行的语句
}
在try...catch语句中,catch和finally必须与一个try相关联,同样try也必须至少要有一个catch.
finally语句块的作用是当异常发生时,在执行异常处理语句块之前,必须先做一些清理的工作,这样的工作放在finally语句块中。
finally语句块是可选的,它只是提供一种机制,无论try语句块是否发生异常,都要确保清理作的完成。
catch后面异常发生时执行的语句块,可以为空,但一对{}不能省略。
回复 使用道具 举报
可以啊,用throw,没s
回复 使用道具 举报
try不能单独使用,要么和catch一起使用,可以跟多个catch,要么和finally一起使用,只能有一个finally
回复 使用道具 举报


如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
张林敏 来自手机 中级黑马 2013-5-2 22:43:57
11#
try不能单独使用,编译就过不去。要跟catch、finally一起使用。如果楼主想要抛出异常也可以在catch中进行捕获
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马