关于java自定义异常类的一个代码
}
}
一直报下面那个错误 真心没辙了 展开
1 程序中的异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。
Java异常类层次结构图:
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
在程序中使用自定义异常类,大体可分为以下几个步骤。
(1)创建自定义异常类。
(2)在方法中通过throw关键字抛出异常对象。
(3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
(4)在出现异常方法的调用者中捕获并处理异常。
创建自定义异常类
public class MyException extends Exception {
private static final long serialVersionUID = 1L;
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}
使用的话就不演示了 如果你已经研究到了自定义异常 那么我相信你也一定会使用了
如果不会使用 建议学会使用后再来看这篇文章
1.p.setAge("小明",-1);
此时age=-1;
2. public void setAge(String name,int age) throws MyException
{
this.name=name;
if(age<0) //年龄小于0抛出异常
throw new MyException("年龄不能小于0");
this.age=age;
}
3. try{
p.setAge("小明",-1); //捕获异常
System.out.println("姓名:"+p.getName());
System.out.println("年龄:"+p.getAge());
}
catch(MyException e){ e.printStackTrace();
}
这异常肯定会报啊,因为你设置的年龄小于0了。
把
e.printStackTrace();
改成
System.out.println("1"); 他输出的信息还是不变
你写好源代码后,有没有重新编译?
你试一下在之前是不是有定义过一个类class person,改个类名再运行
或者MyException 这个类名也改改。如果你确认之前没有定义过这两个类名的话,那只能说人品问题了,我是直接把你代码复制到本地运行的,除了提示少了一个"}"大括号。其它一切正常
能麻烦讲的详细点么,具体要怎么改呢?
你 看看你的person里有没有setAge这个方法,估计是方法参数不对