异常2.0

Java中的异常分为两大类:编译时异常和运行时异常。
运行时异常:所有的RuntimeException类及其子类被成为运行时异常。
编译时异常:除去所有的运行时异常都称为编译时异常。
处理方法:编译时异常必须显示处理,否则程序就会发生错误,无法通过编译。运行时异常无需显示处理,也可以和编译时异常一样处理。
比如说一个运行时异常的例子:

public class Yichang{
	public static void main(String[] args){
		method();
	}
	public static void method(){
		int[] a={1,2,3};
		a[3]=10;
		System.out.println(a[3]);
 	}
}

在运行后就会报出这样的错误:Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3;
在这个代码中我们可以看出a[3]是属于索引越界了的,但是它在编译时并不会报错,而是在运行时报出错误,这种就叫做运行时异常,他在编译的时候并不会产生错误信息。
编译时异常的例子如下:

public class Yichang{
	public static void main(String[] args){
		method();
	}
	public static void method(){
		String a="2022-6-13";
		SimpleDateFormate b=new SimpleDateFormate("yyyy-MM-dd");
		Date c=b.parse(a);
		System.out.println(c);
 	}
}

此时,在Date c=b.parse(a);下面就会提示我们有异常,等待我们处理,这时候编译不成功,更不用说是后续的运行,而处理的方法也很简单,就是用try…catch包围并给出相应的捕捉就行了,即将Date后的改变一下即可如下:

try{
	Date c=b.parse(a);
	System.out.println(c);
	}catch(ParseException e){
	e.PrintStackTrase();
	}

有些时候呢我们可能会遇到我们处理不了的异常,这个时候呢我们就会用到throws,throws的格式通常是throws 异常类名;这个格式是跟在方法的括号后面例如:public static void method() throws ArrayIndexOutOfBoundsException{};这个是假设这个方法中存在这个异常,所以这样写,当然即使即使里面没有这个异常也可以写上这个,古话说:思则有备,有备无患。就是做这个就是为了防止存在异常,如果异常不存在也没关系。
thows这个处理异常的方法只是把异常抛出去,并不是说是把这个异常问题解决了, 当程序运行到异常处时并不会继续往下运行,所以当想要程序继续运行的话,仍然需要用try…catch去处理异常。
当用throws处理编译时异常时,假如说异常是在一个方法中,那么throws会把这个异常抛出到使用这个方法的另一个方法中去,此时另一个方法会显示编译异常需要我们处理,这个时候我们仍然需要我们处理异常,这个也相当于层层嵌套,所以说我们仍然需要解决这个异常。(当一个方法中的异常用throws处理时,就变成谁使用这个方法谁需要处理这个异常)
总而言之,处理异常的主要解决方法仍然是try…catch所以我们想要程序继续运行下去就需要我们用try…catch去处理异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值