Java异常捕获处理和异常抛出及自定义异常

目录标题

    • 一、捕获和处理异常
    • 二、异常抛出
      • 1. throw
      • 2. throws
    • 三、自定义异常
      • 1. 自定义异常概念
      • 2. 自定义异常类
      • 3. 示例

一、捕获和处理异常

  1. try{} 语句块中放要检查的代码,有异常就会自动抛出
  2. catch(异常类型){} 语句块接收到 try{} 中锁抛出的异常对象,会寻找嫩处理这一异常catch块来进行处理(可以有多个catch块,由异常类型范围小到大排列)
  3. finally{} 不管系统有没有抛出异常语句块都会执行,一般用来解放资源。除了在之前执行了system.exit(0)

异常类型:Exception (包含所有异常)
搭配方式:

  • try{}finally{}
  • try{}catch(异常类型){}
  • try{}catch(异常类型){}finally{}

方式一:try{}finally{}
没有使用catch捕获,自然报异常,但程序不会终止
Java异常捕获处理和异常抛出及自定义异常_第1张图片

方式二:try{}catch(异常类型){}
Java异常捕获处理和异常抛出及自定义异常_第2张图片
方式三: try{}catch(异常类型){}finally{}
Java异常捕获处理和异常抛出及自定义异常_第3张图片

二、异常抛出

  • throw 用于手动抛出异常,作为程序员可以在任意位置手动抛出异常
  • throws 用于在方法上标识要暴露的异常,抛出的异常交由调用者处理

两者区别
throw用于方法内,后面跟着上要抛出的异常类对象
throws修饰在方法上,告诉调用者吃方法可能会抛出异常,后面跟上跑抛出的异常类名

1. throw

抛出异常:
Java异常捕获处理和异常抛出及自定义异常_第4张图片

2. throws

在开发中,如果去调用别人写的方法时,是否能知道别人写的方法是否会发生异常?这是很难判断的。针对这种情况,Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过

抛出异常:
Java异常捕获处理和异常抛出及自定义异常_第5张图片
示例:
Java异常捕获处理和异常抛出及自定义异常_第6张图片

三、自定义异常

1. 自定义异常概念

  • java提供的异常体系不可能预见所有希望加以报告的错误
  • 自定义异常类必须从已有的异常类继承
  • 建立新的异常类型最简单的方法就是让编译器产生默认构造方法
  • 对异常来说,最重要的部分就是它的异常名
  • 可以为异常定义一个接收字符串参数的构造方法,字符串参数描述异常信息

2. 自定义异常类

Java异常捕获处理和异常抛出及自定义异常_第7张图片

3. 示例

package com.demo;

class Bar {
	int age;
	
	public Bar(int age) {
		this.age = age;
	}
	
	public void check() throws AgeLessThanEighteenException{
		if (age < 18) { 
			//抛出异常
			throw new AgeLessThanEighteenException("年龄小于18");
		}
	}
}

class AgeLessThanEighteenException extends Exception {
	private static final long serialVersionUID = 1L;
	private String message;
	//构造方法
	public AgeLessThanEighteenException(String message) {
		this.setMessage(message);
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) { 
		this.message = message;
	}
}

public class Test {
	public static void main(String[] args) {
		Bar one = new Bar(15);
		
		try {
			one.check();
		} catch (AgeLessThanEighteenException e) {
			System.out.println("异常信息:"+e.getMessage());
		}						//getMessage()获取异常信息
	}
}

在这里插入图片描述

你可能感兴趣的:(Java基础,java)