Java中的自定义异常

本文介绍了在Java中创建和使用自定义异常的步骤。首先,通过继承Exception类来定义自定义异常,并提供构造方法抛出错误信息。其次,在可能抛出异常的方法中使用`throw`关键字配合`throws`声明异常。最后,主方法使用`try-catch`来捕获并处理异常,确保程序的正常运行。示例代码展示了如何在除法操作中处理分母为0的异常情况。

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

Java自定义异常

在程序中使用自定义异常,大体可分为以下几个步骤

  1. 创建自定义异常类
class MyException extends Exception {// 创建一个自定义异常

	public MyException(String x) {
		super(x);// x为要输出的错误信息
	}

}

需要继承Exception类即可自定义异常类,创建一个构造方法,其中x为输出的错误信息,可以直接定义一个变量,然后用throw关键字抛出,也可以直接在这里写错误信息。

class MyException extends Exception {// 创建一个自定义异常

	public MyException(String x) {
		super("分母不能为0");// x为要输出的错误信息
	}

}
  1. 在方法中通过throw关键字抛出异常对象
public void div() throws MyException {// 定义方法,抛出异常
		// 可能存在异常的代码块
		Scanner sc = new Scanner(System.in);
		int a = 0;// 分子
		int b = 0;// 分母
		System.out.println("请输入分子:");
		a = sc.nextInt();
		System.out.println("请输入分母:");
		b = sc.nextInt();
		if (b != 0) {// 对分母进行判断
			System.out.println(a + "/" + b);
		} else {
			throw new MyException("分母不能为0");
		}
	}

可能存在异常的代码块的方法需要用throws(注意区分 throws 与 throw )抛出所定义的异常类。对数据进行判断,对可能会出现异常的情况,输出错误信息。

3.在主方法中调用div()方法,需要使用try-catch语句

public static void main(String[] args) {
		
		Dome1 d = new Dome1();
		try {
			d.div();
		} catch (MyException e) {
			e.printStackTrace();
		}
	}

完整代码

package blog.c;

import java.util.Scanner;

public class Dome1 {

	public void div() throws MyException {// 定义方法,抛出异常
		// 可能存在异常的代码块
		Scanner sc = new Scanner(System.in);
		int a = 0;// 分子
		int b = 0;// 分母
		System.out.println("请输入分子:");
		a = sc.nextInt();
		System.out.println("请输入分母:");
		b = sc.nextInt();
		if (b != 0) {// 对分母进行判断
			System.out.println(a + "/" + b);
		} else {
			throw new MyException("分母不能为0");
		}
	}
	public static void main(String[] args) {
		
		Dome1 d = new Dome1();
		try {
			d.div();
		} catch (MyException e) {
			e.printStackTrace();
		}
	}

}

class MyException extends Exception {// 创建一个自定义异常

	public MyException(String x) {
		super(x);// x为要输出的错误信息
	}

}

当分母不为0时,正常输出这个分数

当输入的分母为0时,则提示异常信息
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值