黑马程序员技术交流社区

标题: 这种情况不能用try{}finally{} 这种模式吗 [打印本页]

作者: 余善航    时间: 2013-1-20 02:47
标题: 这种情况不能用try{}finally{} 这种模式吗
class Demo2{
        public void qwe()
        {
                try {
                        throw new Exception();// 报错未处理过得异常
                }finally{
                        //这没有课关闭的资源
                }       
        }
}
public class vvvv {

        public static void main(String[] args) {
                // TODO Auto-generated method stub

                Demo2 d=new Demo2();
                d.qwe();
        }
}
/* 这就是个小例子,尝试下try{}finally{}这中模式
可是这个问题怎么处理*/
作者: 柴乔军    时间: 2013-1-20 08:59
1. Exception在程序中必须使用try...catch进行处理。
2. RuntimeException可以不使用try...catch进行处理但是如果有异常产生则异常将由JVM进行处理。
  1. class Demo2{
  2.     public void qwe()
  3.     {
  4.             try {
  5.                     throw new Exception();// 报错未处理过得异常
  6.             } catch (Exception e) {  //这里一定要catch
  7.                                 // TODO Auto-generated catch block
  8.                                 e.printStackTrace();
  9.                         }finally{
  10.                     //这没有课关闭的资源
  11.             }        
  12.     }
  13. }
  14. public class vvvv{

  15.     public static void main(String[] args) {
  16.             // TODO Auto-generated method stub

  17.             Demo2 d=new Demo2();
  18.             d.qwe();
  19.     }
  20. }

  21. 结果如下:
  22. java.lang.Exception
  23. at test.Demo2.qwe(Student.java:6)
  24. at test.Student.main(Student.java:21)

复制代码

作者: 折纸时代    时间: 2013-1-20 09:20
异常分为 编译时异常和运行时异常. 具体的处理方法也不同.
如果在方法上throws 抛出异常,在方法内 要么try catch try 处理,要么继续抛出.
你在try内 抛出了个编译时异常对象,却没有声明异常类型,也没有catch处理.这不行的.
  1. class Demo
  2. {
  3.         public void qwe() throws Exception  
  4.         {
  5.                 try
  6.                 {
  7.                          throw new Exception();//RuntimeException():可以不用声明异常类型,出现异常程序直接停止
  8.                 }
  9.                 /*catch(Exception e)    //如果抛出编译时异常,要么catch内处理,要么方法上声明.
  10.                 {
  11.                         throw e;
  12.                 }*/
  13.                 finally
  14.                 {
  15.                         //这没有课关闭的资源
  16.                 }        
  17.      }
  18. }

  19. public class Demo2
  20. {

  21.      public static void main(String[] args)
  22.                  throws Exception
  23.          {
  24.                         // TODO Auto-generated method stub
  25.                         Demo d=new Demo();
  26.                         d.qwe();
  27.      }
  28. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2