黑马程序员技术交流社区
标题:
关于异常处理
[打印本页]
作者:
吴通
时间:
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;会报除零异常,应该捕获
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=0;
try{x=d.div(4,0);}catch(ArithmeticException e){System.out.println(e.getMessage());}
System.out.println("x="+x);
System.out.println("over");
}
}
复制代码
作者:
杨卓儒
时间:
2012-8-23 09:39
楼上已经回答你了,分号写成中文格式的 分号了,编译器当然无法识别。改过来就ok了。
建议把标题改为已解决~~:)
作者:
吴通
时间:
2012-9-19 09:58
已解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2