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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Rancho_Gump 高级黑马   /  2012-12-9 17:47  /  1364 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2012-12-14 15:10 编辑

对于异常处理,我有点模糊,请助!
毕老师说遇到异常可以进行try处理,或者throw。那么什么情况下进行throw好呢,什么情况下必须做try处理啊?

4 个回复

倒序浏览
一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
throw语句用来明确地抛出一个"异常"。
throws用来标明一个成员函数可能抛出的各种"异常"。
Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
throws就是把问题扔给上一级,或者说上学有不会的问题就问比你学的好的,如果学的好的也不会就问老师去了,,,反正到最后总是要用try语句解决的
try则是自己解决问题,一次解决就轻松了,调用这个方法的也就不用再try了...
回复 使用道具 举报
public class Test{
    public static void main(String[] args){
         boolean bool = true;
         try{
               System.out.println("1");
               if(bool){
                     throw new Exception;
                     Integer.parselnt("100");//证明try块出现异常,立即终止块
               }
                     System.out.println("2");
         }catch(Exception e){
                 System.out.println("已经处理完");
         }
            System.out.println("3");
     }
}

在try中抛出异常,有对应的catch捕获。
把抛出的异常的语句放到try中,try是监控区,用来监控这些语句。在监控区中出现异常,不会使用方法返回。这时会在catch中查找哪一个catch能够处理这个异常,找到这个catch,然后交给它,让它处理,catch捕获处理异常的块,catch块结束后,程序向下正常执行。
}

public static String fun()throws Exception{}
//throw手动抛出异常
public static void main(String[] args)throws Exception{//throws声明异常
     Exception e = new Exception;
     throw e;//抛出异常

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
你觉得有可能出问题的地方用try catch,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马