package daima;

import java.util.Scanner;

class plus1 extends Exception {          //继承Exception类
    private int a;                       //定义一个私有的整形变量,只能在本类中使用
    public plus1() {                     //无参的构造方法
        super();                          //调用父类Exception的构造方法
    }
    public plus1(String message,int a) {          //定义一个带二个参数的构造方法
        super(message);                           //调用父类Exception的带有String类型参数的构造方法
        this.a=a;                                 //赋值  
    }
    public int geta() {                           //成员方法
        return a;                                 //返回a
    }
}
class dome {                                     //在定义一个类用来抛出异常
     int div(int b,int c)throws plus1{           //定义一个成员方法div(int b,int c),并且抛出可能发生异常的成员方法
        if(c<0)
           throw new plus1("除数不能为负数!",c);       //抛出异常
           return b/c;
}}
public class plus {                             //捕捉异常
    public static void main(String[]args) {
        dome s1=new dome();    //创建dome的对象s1
        Scanner plus=new Scanner(System.in);
        System.out.println("请输入两个整数:");          //手动输入两个数据
        int n=plus.nextInt();
        int m=plus.nextInt();
        try {                                      
            int x= s1.div(n,m);
            System.out.println("x="+x);
        }
        catch(plus1 e){
            System.out.println(e.toString());
            System.out.println(e.geta());        
        }
    }
}
    

关于toString()方法

public String toString() {
String s = getClass().getName();
String message = getLocalizedMessage();
return (message != null) ? (s + ": " + message) : s;
}

getClass()返回该对象的运行时类的java.lang.Class对象(API上的解释)   即calss 包名.类名

getName()以String形式返回次Class对象所表示的实体名称         即包名.类名

可以发现,用getName返回的比前面getClass少了个Class和一个空格。

 

posted on 2019-05-11 22:52  卢思林  阅读(133)  评论(0编辑  收藏  举报