自定义除零异常!

class Demo
{
	int div(int a,int b)/*throws ArithmeticException*/
	{
		if(b==0)
			throw new ArithmeticException("大爷的,你会不会啊!!!");
		
			return a/b;
	}
}
class Demodemo9
{
	public static void main(String[] args)
	{
		Demo d=new Demo();
		int x=d.div(4,0);
		System.out.println(x);
		/*try
		{
			
		}
		catch (ArithmeticException e)
		{
			//System.out.println(e);
			e.printStackTrace();
			//System.out.println("hahahahha");
		}
		*/
	}
}
/*
注释部分可写可不写,编译都能通过,但是ArithmeticException属于RuntimeException异常,
所以要么就写throw,要么写throws。
下面的try catch处理都不需要写!
但是上面函数里抛出new Exception("大爷的,你会不会啊!!!");就编译失败
当该异常发生,是希望程序停止,不需要让调用者处理。
自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException.
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们需要在C++中处理特定类型的错误时,可以自定义异常类来表示这些错误。在C++中,自定义异常类通常是通过继承标准异常类std::exception来实现的。 下面是一个示例代码,展示了如何自定义一个名为MyException异常类: ```cpp #include <exception> #include <string> class MyException : public std::exception { public: MyException(const std::string& errorMessage) : errorMessage(errorMessage) {} const char* what() const noexcept override { return errorMessage.c_str(); } private: std::string errorMessage; }; ``` 在这个示例中,我们定义了一个名为MyException异常类,它继承自std::exception类。我们通过构造函数接受一个字符串参数,用于设置异常的错误信息。在what()方法中,我们重写了std::exception类的what()方法,以便返回我们自定义的错误信息。 我们可以在程序中使用这个自定义异常类,例如: ```cpp #include <iostream> void divide(int dividend, int divisor) { if (divisor == 0) { throw MyException("Divisor cannot be zero!"); } std::cout << "Result: " << dividend / divisor << std::endl; } int main() { try { divide(10, 0); } catch (const MyException& e) { std::cerr << "Exception caught: " << e.what() << std::endl; } return 0; } ``` 在上述示例中,我们定义了一个divide()函数,用于进行整数相除操作。如果除数为,我们就抛出一个MyException类型的异常。在main()函数中,我们使用try-catch块来捕获并处理这个异常。如果捕获到异常,我们会输出异常的错误信息。 这样,我们就可以根据需要自定义各种类型的异常类来表示特定的错误情况,并在程序中进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值