不知道有没有帮助
- package exercise;
- class FuShuException extends Exception//自定义异常必须是在Throwable这个体系中,才可以try和throw
- {
-
- private int value;//定义这个变量是为了获取负数是多少。
- FuShuException(String msg,int value)
- {
- super(msg);//子类的空构造方法默认第一行是super()。
- //这里定义了有参的构造方法,所以所以没有无参的构造方法。
- //必须有一个构造方法访问父类,这是继承的特性。
- this.value=value;//将负数b传递给形参value,value再传递给本类的成员变量this.value,方便在别的方法中调用。
- }
- public int getvalue()//通过这个方法调用负数。
- {
- return value;
- }
- }
- class Demo
- {
- int div(int a,int b)throws FuShuException//当异常不是RunTimeException的子类时,
- //内部没有try catch的话必须声明异常,就是throws抛出异常。
- {
- if(b<0)
- throw new FuShuException("出现了除数为负数的情况!",b); //手动通过throw关键字抛出一个自定义异常对象
- return a/b;
- }
- }
- public class FuShu
- {
- public static void main(String args[])
- {
- Demo d=new Demo();
- try//try中存放的是有可能出现异常的代码
- {
- int x=d.div(4,-1);
- System.out.println("x=="+x);
- }
- catch(FuShuException e)//catch是处理出现的对应的异常。
- {
- System.out.println(e.toString());
- System.out.println("错误的负数是:"+e.getvalue());
- // System.out.println("出现负数了!");
- }
- System.out.println("over");
-
- }
- }
复制代码 |