java:异常

学习参考文章:Java:详解Java中的异常(Error与Exception)

1. 异常的概述

Throwable是所有异常的父类,其中关系如下图所示:
在这里插入图片描述
在这里插入图片描述

2.JVM默认的方案

如果程序出了问题,我们并没有做过多的处理,最终JVM会默认的处理
1.把异常的名称,异常的原因以及异常出现的位置输出在控制台中。
2.程序将会终止执行

3.异常的处理

1.try…catch
2.throw抛出异常

4.异常的处理之try…catch

在这里插入图片描述

在这里插入图片描述

5.Throwable成员方法

当程序报错时,我们在控制台看到的异常消息,主要就是根据这些方法进行打印的。
在这里插入图片描述

6.异常的分类(重点)

java中的异常主要分类两大类:编译时异常运行时异常,也被称为是受检异常非受检异常
注:所有的RunTimeException类以及其子类被称为运行时异常,其他为非运行时异常。
编译时异常:必须显示处理,否则程序就会发生错误,无法通过遍历。举个例子:就好像调用某些方法,会出现类型的错误,也可能方法返回的类型和你传递的类型不一致,这个时候就会爆红,你不处理这个异常,你的程序就无法通过编译,也就无法运行。
运行时异常:无需显示处理,也可以和编译时异常一起处理。举个例子:运行时异常就是指程序在运行期间出现的错误,在编译期间没有出现错误,程序成功运行了,但是报出了一些异常。

7.异常的处理之throws

虽然通过try…catch可以对异常进行处理,但是并不是所有的情况我们都有权限进行异常的处理,也就是说,有些时候可能有一些异常我们是处理不了的,这个时候,我们就需要使用java中的throws处理方法,将异常抛出,将这个异常的具体处理交给使用这个方法的人来进行。

格式:

throws 异常类名

注意:这个格式是跟在方法的括号后的

public class ExceptionDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		// method();
		try {
			method2();
		}catch (ParseException e) {
			e.printStackTrace();
		}
			System.out.println("结束");
	}
	//编译时异常
	public static void method2() throws ParseException {
		String s = "2048-08-09";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date d = sdf.parse(s);
		System.out.println(d);
	}
	//运行时异常
	public static void method() throws ArrayIndexOutOfBoundsException {
		int[] arr = {1, 2, 3};
		System.out.println(arr[3]);
	}
}

重点:

1.编译时异常必须要进行处理,两种处理方案:try…catch或者throws,如果采用了throws这种方案,将来谁用谁就来处理这个异常。

2.运行时的异常可以不处理,出现问题后,就需要我们回来修改代码。

8.throw和throws的区别

在这里插入图片描述

9.自定义异常

在实际的开发过程中,我们可以自定义异常类,通过继承其他的异常类,并使用父类的构造方法,或者重写自己的方法,实现特有的功能。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值