黑马程序员技术交流社区

标题: 关于异常处理 [打印本页]

作者: 吴通    时间: 2012-8-22 20:07
标题: 关于异常处理
本帖最后由 吴通 于 2012-9-19 09:58 编辑

class FuShuException extends RuntimeException
{
        FuShuException(String msg)
        {
                super(msg);
        }
}
class Demo
{
        int div(int a,int b)
        {
                if(b<0)
                        throw new FuShuException("出现了除数为负数");
                if(b==0)
                        throw new ArithmeticException("被零除了");
                        return a/b;
        }
}
class LinLeiException
{
        public static void main(String[] args)
        {
                Demo d=new Demo();
                int x=d.div(4,0);
                System.out.println("x="+x);
                System.out.println("over");
        }
}

这个程序在编译的时候提示“出现了除数为负数”为非法字符,这是为什么?
作者: 全海波    时间: 2012-8-22 20:54
你这个程序没什么问题,可能是你输入数字为字符串去了吧!
作者: 李知伦    时间: 2012-8-22 21:57
throw new FuShuException("出现了除数为负数");
上面一句的最后的分号为中文的分号,改成;

另外当b=0时,return a/b;会报除零异常,应该捕获
  1. class FuShuException extends RuntimeException
  2. {
  3.         FuShuException(String msg)
  4.         {
  5.                 super(msg);
  6.         }
  7. }
  8. class Demo
  9. {
  10.         int div(int a,int b)
  11.         {
  12.                 if(b<0)
  13.                         throw new FuShuException("出现了除数为负数");
  14.                 if(b==0)
  15.                         throw new ArithmeticException("被零除了");
  16.                         return a/b;
  17.         }
  18. }
  19. class  LinLeiException
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Demo d=new Demo();
  24.                                 int x=0;
  25.                 try{x=d.div(4,0);}catch(ArithmeticException e){System.out.println(e.getMessage());}
  26.                 System.out.println("x="+x);
  27.                 System.out.println("over");
  28.         }
  29. }
复制代码

作者: 杨卓儒    时间: 2012-8-23 09:39
楼上已经回答你了,分号写成中文格式的 分号了,编译器当然无法识别。改过来就ok了。

建议把标题改为已解决~~:)
作者: 吴通    时间: 2012-9-19 09:58
已解决





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