今日初学异常

异常是程序中的一些错误,但并不是所有的错误都是异常。

异常体系

Throwable类是Java语言中所有错误或异常的超类,它有两个子类分别是Error,Exception.

Error(错误)是Throwable的子类,Error一般是指程序的严重错误,一般不被捕获,只能抛出。

Exception(异常/例外)是Throwable的子类,Exception可以捕获也可以抛出。

 .异常的处理方式

抛出异常:

1 声明抛出异常

1)在方法签名上声明,具体是在参数列表后,大括号前,使用throws异常类名来声明

例:

public static void test(int a) throws ArithmeticException{}

2)声明异常,不一定就会抛出异常

3)如果有异常要抛出,就是将异常信息以标准错误流打印到控制台

4)throws后面可以写多个异常类名,中间用 , 隔开。该方法可以抛出多种异常,但不是同时抛出多种异常

5)程序抛出异常,那么程序就会在抛出异常处停止,不再向下执行

6)异常抛出是向上抛出,即抛给方法调用者,一层一层向上抛,直到main方法,main方法抛出到控制台。

2 主动抛出异常

1)在程序中是以throw主动抛出异常对象

2)throw异常对象:

private static void m(int n) throws MyException1, MyException2 {
		if (n == 1) {
			throw new MyException1("n==1");
		} else {
			throw new MyException2("n==2");
		}
	}

}

3  throw和throws的区别:

1)作用:throw是抛出异常对象,throws是声明异常类型的

2)位置:throw是在方法体重,throws是在方法签名上

3)写法:throw后面跟异常对象,且只能是一个对象

                throws后面跟异常类名,且可以写多个异常类名    

捕获异常

使用try和catch关键字可以捕获异常。try/catch代码块放在异常可能发生的地方,try/catch代码块称为保护代码,语法如下:

try {
			//程序代码
		} catch (Exception e) {
			// catch 块
		}
	}

 catch语句包含要捕获异常类型的声明,当保护代码块中发生一个异常时,try后面的catch块就会被检查。如果发生的异常包含在catch块中,异常会被传递到该catch块。

 finally关键字

finally关键字用来创建在try代码块后面执行的代码块

无论是否发生异常,finally代码块中的代码总会被执行

在finally代码块中,可以运行清理类型收尾善后性质的语句

finally出现在catch最后,语法如下:

try {
			//程序代码
		} catch (异常类型1 异常变量名1) {
			// 程序代码
		} catch (异常类型2 异常变量名2) {
			// 程序代码
		} finally {
			//程序代码
		}
	}

自定义异常

检查型异常类需要继承Exception类

运行时异常类需要继承Runtimeexception类

public class MyException1 extends Exception {
	public  MyException1() {
		
	}
	public  MyException1(String message) {
		super(message);
	}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值