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

© Rockray 高级黑马   /  2013-10-31 09:16  /  784 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class ExceptionDemo3 {
  2.         public static void main(String[] args){
  3.                 Demo d = new Demo();

  4.                 int f = d.div(5,0);   
  5.                 System.out.println(f);
  6.         }
  7. }

  8. class Demo {
  9.         int div(int a,int b){
  10.                 try {
  11.                         if(b == 0)  
  12.                                 throw new Exception();
  13.                 }
  14.                 catch(Exception e){
  15.                     System.out.println(e.toString());
  16.                         System.out.println("除零啦");
  17.                 }
  18.                 return a/b;
  19.                 finally {
  20.                         System.out.println("over");
  21.                 }
  22.                
  23.         }
  24. }
复制代码
编译失败:


明明是有try的啊
什么原因呢




评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

4 个回复

倒序浏览
try...catch...finally语句需要紧跟着写,你中间有return a/b;不能算作一个语句。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
try...catch...finally语句和if..else语句,do...while语句是一样的,都是紧跟着上一个语句块结束后的大括号写的,不能打断
而楼主的代码在catch语句块后的"return a/b;"则是把该try...catch..finally语句打断了,finally语句块相当于又重新写了一个try..catch...finally语句
而try...catch...finally语句的三种使用方式,try语句块是必须要有的,所以会报上述的错误

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
已将帖子分类为“提问结束”。
若问题还没解决,可以继续提问。
回复 使用道具 举报
try catch finally 语句 是一个整体,是连在一起的 中间不能加 return a/b;这句
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马