0
点赞
收藏
分享

微信扫一扫

异常抛出与自定义异常

青鸾惊鸿 2022-04-30 阅读 96

如果需要在程序中自行抛出异常,应使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。

在Java内置的异常类中可以描述编程时出现的大部分异常,所以用户只需继承Exception类即可自定义异常类。步骤如下:

  1. 创建自定义异常类
  2. 在方法中用throw抛出异常对象
  3. 处理异常
    1.在抛出异常的方法内处理异常:使用try-catch
    2.用throw关键字指明抛出的异常

实现

public class Test
{
	public static void main(String[] args){
		try{
			test01(-3);
		}catch (Exception e){
			System.out.println(e.getMessage());
		}
	}
	public static void test01(int a) throws Exception{
		if(a<0){
			throw new Exception("小于0,报错!");
		}
	}
}

当程序运行到test01(-3)时,调用方法,运行throw new Exception("小于0,报错!")。此时抛出异常。
在catch处System.out.println(e.getMessage());输出异常(“小于0,报错!”)的性质。
输出如图:

在这里插入图片描述


自定义异常

自定义异常

class MyException extends Exception { //自定义异常类
	String message;

	public MyException(String ErrorMessagr) {//成员方法
		message = ErrorMessagr;
	}

	public String getMessage() { // 重写getMessage()方法
		return message;
	}
}

public class Captor { 
	static int test02(int x) throws MyException { 
		if (x < 0) { 
			throw new MyException("不能是负数"); 
		}
		return x;
	}

	public static void main(String args[]) {
		try { 
			int result = test02(-1); 
		} 
		catch (MyException e) { 
			System.out.println(e.getMessage());//输出异常信息
		} 
		catch (Exception e) { 
			System.out.println("程序发生了其他的异常"); 
		}
	}
}

调用test02后,运行至throw new MyException("不能是负数"); 转跳至public MyException(String ErrorMessagr) {//成员方法 message = ErrorMessagr; }
使=message"不能是负数"。之后在catch处处理异常System.out.println(e.getMessage());//输出异常信息
输出:
在这里插入图片描述

附上:

非自定义异常类

public class Captor {
    static int test02(int x) throws Exception {
        if (x < 0) {
            throw new Exception("不能是负数");
        }
        return x;
    }

    public static void main(String args[]) {
        try {
            int result = test02(-1);
        }
        catch (Exception e) {
            System.out.println(e.getMessage());//输出异常信息
        }
    }
}

输出相同

举报

相关推荐

0 条评论