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和一个空格。