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

© wrnlksblk 中级黑马   /  2015-7-1 22:52  /  509 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class  ExceptionTest5
{
        public static void main(String[] args)
        {
                int a =1,b = 0;
                try
                {
                        System.out.println(a/b);
                }
                catch (AException   e)
                {
                       
                        System.out.println("除零了");
                }
               
        }
}
class AException extends RuntimeException         //为什么此处继承EXception编译失败(java:10: 错误: 在相应的 try 语句主体中不能抛出异常错误                                                                                          //但是继承RuntimeException却编译通过,且就算通过也无法执行catch里的内容?好像是自定义的异常无法捕                                                                            获的感觉
{                                               
        AException(String msg)
        {
                super(msg);
        }
}                                                  

4 个回复

倒序浏览
就是说我自定义一个异常用来处理除以0的问题,但是为什么catch不到我自定义的那个异常呢??
回复 使用道具 举报
就是说我自定义一个异常用来处理除以0的问题,但是为什么catch不到我自定义的那个异常呢??
回复 使用道具 举报
有没有人理下我啊????55555555
回复 使用道具 举报
try
                 {
                         System.out.println(a/b);
                 }
       这个代码是有问题的,你自定义了一个异常类,要在a/b时判断并抛出。我给你写一个,你参考一下
class Get{
//代码的优化,尽量让一个代码处理一件事情。
        public static int method(int a,int b)throws AException{
                if(b==0)//在哪有错误,在哪抛出
                        throw new AException("除零了");
                else{return a/b;}
        }
}
public class ExceptionTest5{

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                  
          try
          {
                  System.out.println(Get.method(1, 0));
          }
          catch (AException   e)
          {
                  
                 e.printStackTrace();
          }
        }

}
class AException extends RuntimeException         
{                                                
  AException(String msg)

        {
super(msg);
   }
}     
感觉你进入了一个误区,不是你自定义完了,他就能自行抛出的,自己好好琢磨琢磨吧 。     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马