黑马程序员技术交流社区
标题:
关于自定义异常的疑惑?
[打印本页]
作者:
李志广
时间:
2012-8-6 19:20
标题:
关于自定义异常的疑惑?
class NoValueException extends
RuntimeException
{
NoValueException(String msg)
{
super(msg);
}
}
interface Shape
{
void getArea();
}
class Rec implements Shape
{
private int len;
private int wid;
Rec(int len,int wid)
{
if(len<=0||wid<=0)
throw new NoValueException("长方形面积怎么可能为负数!!!");
this.len=len;
this.wid=wid;
}
public void getArea()
{
System.out.println(len*wid);
}
}
class ExceptionDemo2
{
public static void main(String[] args)
{
Rec r=new Rec(3,4);
r.getArea();
}
}
在毕老师讲解的视频中:
NoValueException(String msg)
{
super(msg);
}它的父类是底层怎样实现的呢?还是不太清楚?
还有在自定义异常时有两种方式:一种是继承Exception,另一种是继承RuntimeException。在上面的例子中显然继承RuntimeException 时会比较简单,但是在实际的应用中
是不是尽量继承RuntimeException ? 那种继承方式更常用呢?在什么情况下必须使用继承Exception ?
作者:
朱志辉
时间:
2012-8-9 11:17
RuntimeException是运行时异常,包括它的子类也是运行时异常。运行时就是在编译前不是必须要处理的,相对于编译时异常。编译时异常出现错误,编译将通不过。而运行时异常即使出现了异常也能编译通过。
在Exception的所有子类中,除RuntimeException外的都是编译时异常。
编译时异常,必须声明(在方法声明后加throws 异常),或在方法体中throw一个异常,或者捕捉异常,用try .. catch做异常分支处理。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2