关于Java基础se部分,异常部分理解

异常处理模块

异常

首先说到异常我们就要知道两种东西

1,Error: 错误在我的理解上就是与我们写的代码没有关系的东西即使改密码也无法避免所这事不能赖我那怪谁这就只能怪电脑,怪虚拟机,我们都知道java是在虚拟机中运行的至于过程我还没有了解总之这么记就好,其次你可以将其理解为天灾你一个人干什么是阻止不了的所以找我们活着的地方啊。

2,Exception:异常 这里的异常很容易与最大分类及开头异常不是一回事,说一下怎么区分那就是不记中文,大的叫Throwable里面包括两个小的就是Error和Exception这样就记住了,而这里我们理解的异常可以理解为人祸就是自己犯的错误(这里可以理解为借钱一会做解释为什么我这个新手要这么想)也就是说我们的代码有问题也就是可以通过我们自己去修改代码或者用Java提供的方法可以解决也就是说是可以解决的
*
3.用图的方式解释一下这些提到的异常的关系
关于Java基础se部分,异常部分理解

异常处理

异常处理关键就在于这张图里面的关系以及需要知道的重中之重 (此处为真正重点)
①所谓异常处理我们你要知道什么是一场出处理就想图里面写的首先我们要知道异常还可以分为两种,由上图可知及Throwable可以分为两种,那就是非检测异常和检测型异常,那他俩是什么呢简单地说就是非检测异常就是你用的编译器不会报错的异常,其中错误我也说过跟我们没有关系,而运行时异常是什么呢就是我写完代码没有问题,但是一运行就会出现错误,也即是说一般是我们的逻辑错误引发的这类错误可以避免,检测型异常就是你不改就无法运行的异常(注意:这里说的是异常不是错误不是乱写的代码异常是什么是人为规定的一种异常现象,谁规定的,就是写jdk的那个人,既然是人规定的我们自己当然也可以,如果用的编译器是eclipse错误是一个大红圈上一个×而异常是一个小灯泡一个红×
②知道了什么是异常就该说什么是异常处理了,理论上异常事都可以处理的使用的语句是
1. try {受检测的代码块} catch(想要捕捉的异常类型){抓住异常之后执行的代码段}。
2. try {} catch(){] finally{一定会执行的代码段} 其他的与上面相同 。
3. throws关键字
③这里解释为什么我把异常理解为借钱,还可以进一步理解非受检异常就是管花呗借钱,父母是编译器我们管花呗借钱,父母是不知道的,受检异常就是我们向亲戚借钱他们会通知父母说以父母知道,所以怎么便于记忆呢。try理解为尝试,里面包着借钱我们尝试借钱catch就是catch就是父母抓到了,他们的方法在抓到了里面替我们还钱(处理异常),之后我们就不欠别人钱了异常也就没有了,加了finally就是不管抓没抓到都要被骂一样避免不了一定要执行,所以我就是这么记住的(可能只适合于我自己如果理解不了就不要硬理解按照自己的就好
④throws抛出异常
就是我自己不解决谁用谁解决
且throws可以抛出多个异常用,隔开,异常之间不能包含
⑤这里注意异常不是你抛出了说着解决了就不存在了,他还是有只不过是它可以让后面的程序继续执行而已因为程序一旦有了异常就会在有异常的这一句停下后面的代码就都无法执行

代码演示

try catch 和throws


public class TestException {

	public void testThrows() throws InterruptedException,NullPointerException{
		System.out.println("我睡一会儿 太累了");
		//可以试试去掉throws看看是什么异常
		Thread.sleep(2000);
		System.out.println("我醒啦");
	}
	
	
	@SuppressWarnings("null")
	public String test() throws InterruptedException{
		this.testThrows();
		
		try{
			String s = null;
			s.length();
			System.out.println("try中的异常后续代码");
			return "ok";
		}catch(Exception e){
			System.out.println("抓到一个异常");
			//打印异常操作
		    e.printStackTrace();
		}finally{
			System.out.println("finally执行了么");
		}
		return "最终的返回值";
	}
	
	public static void main(String[] args) throws InterruptedException {
		TestException te = new TestException();
		te.testThrows();
	}
}

不过多见异常是好事因为见过你一定就会解决了见过的越多你的解决问题的面就会越广。。