自定义异常

本文深入探讨了Java中的异常处理机制,通过自定义异常类plus1的实现,详细讲解了如何抛出和捕捉异常,包括构造方法、toString()方法的使用,以及如何在实际代码中应用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/lusilin/p/10850439.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值