五.javase-java基础语法-异常

一.异常

1.异常的分类体系
在这里插入图片描述
1.1.error 通常是虚拟机出现的错误,通常有内存溢出,栈请求过深等错误,这些错误是虚拟机无法解决的.
1.2.exception分为运行时异常和检查型异常,检查型异常通常指的是io异常,也就是如果本方法会涉及到io操作,可能出现io异常,则这个异常必须处理,要么抛出,要么捕获.运行时异常,通常是代码逻辑的错误.

2.异常的处理
2.1 抛出异常throws

	public static void main(String[] args) throws Exception,RuntimeException{
		//主动制造异常
		//模拟输入密码不正确,而向上抛出异常
		try {
			String password = "123456";
			throw new Exception(""); 	//模拟抛出异常
		} catch (Exception e) {	//捕获异常
			//主动抛出错误
			throw new Exception("密码错误! ");
		}

		//僵尸代码,不可能执行 Unreachable code
		//System.out.println("完成了");	
	}

2.2 捕获异常 try-catch-finally

try {

   //可能产生的异常的代码区

}catch (ExceptionType1 e) {

   //捕获并处理try抛出异常类型为ExceptionType1的异常

}catch (ExceptionType2 e){

   //捕获并处理try抛出异常类型为ExceptionType2的异常

}finally{

   //无论是出现异常,finally块中的代码都将被执行

}

2.3 throw 和 throws的区别
1.位置不同:
throws 在方法声明上.
throw 在方法体中,通常在catch代码块内.
2.后面跟的东西不同.
throws 后面跟的是异常的种类.
throw 后面恨得是具体异常的实例,也就是new的异常.
3.后面跟的异常的个数不同.
throws 后面可以跑出多个不同的异常.
throw 后面只能跑出一个异常的实例.

2.4 自定义异常.

public class MyExeception extends RuntimeException{
	private String msg;
	private int code;
	
	public MyExeception(String msg,int code) {
		this.msg = msg;
		this.code = code;
	}
}
发布了42 篇原创文章 · 获赞 0 · 访问量 685

猜你喜欢

转载自blog.csdn.net/weixin_45449911/article/details/104420409