异常

JAVA异常笔记

什么是异常:异常是指在程序中所发生的不正常的事件

异常处理

异常处理:当程序发生了异常的时候,程序会按照预定的异常处理方式来对异常进行处理,异常处理完毕以后,程序继续运行

java的异常处理是通过五个关键字来实现的:try,catch,finally,throw,throws

try-catch

1.如果try中所有语句正常执行完毕,则不会发生异常,那么catch块中的所有语句都将会被忽略

2.如果try语句在执行中出现了异常,并且这个类型与catch中声明的异常类型相匹配,那么在try块中的剩下的语句都会被忽略,而相应的catch语句则会被执行

3.如果try语句在执行中遇到异常,而抛出的异常在catch块里面没有被声明,那么程序立刻退出

try-catch-finally

1.无论发生了什么异常finally代码块都会执行

2.try语句块中所有语句正常执行完毕finally代码块依旧会执行

3.无论try中语句是否能被catch捕捉到fially代码块都会执行

4.如果try或者catch中有return语句的话,在执行return之前会先将finally语句执行完再来执行try或者catch中的return语句

多重catch

一段代码可能引发多种异常,可以使用多重catch分别捕获

try(){
System.out.print("输入一个被除数");
    int a=input.nextInt();
System.out.print("输入一个除数");
    int b=input.nextInt();
}catch(InputMismatchException e){
System.out.println("数据类型转换错误");
}catch(ArithmeticException e){
System.out.println("算术错误,除数不能为0");
}catch(Exception e ){
System.out.print("可能会发生的未知错误");
}finally{
    System.out.println("这句话不管怎么样都会输出");
}

声明异常:throws

java中通过throws声明了某个方法可能抛出的各种异常,throws可以同时声明多个异常,之间用逗号隔开

public void a() Throws Exception{

}

public void b(){
 a();
}

b方法调用a方法后就知道a方法中抛出了异常

可以采用try-catch捕获并处理异常,也可以继续声明异常

public void b(){
try{
 a();
 }catch(Exception e){
 System.out.print("处理异常");
 }
}

//或者继续声明异常

public void b Throws Exception(){
a();
}

抛出异常:throw

public void a (){
    throw new Exception("抛出异常");
}

public void b(){
try{
 a();
 }catch(Exception e){
    e.printStackTrace();
 }
}

其实throw与throws非常相似,主要区别表现在:

1.throw用于在程序中抛出异常,throws用于在声明在该方法内抛出了异常

2.throw位于方法内部,可以作为单独语句使用,throws必须跟在方法参数列表的后面,不能单独使用

3.内容不同:throw只能抛出一个异常对象,而且只能是一个;throws后面可以跟多个异常类

异常的分类

1.Throwable类:所有异常类型都是Throwable类的子类,它派生出两个子类,即Error和Exception

Error类:指光靠程序和代码本身无法修复。比如虚拟机错误。如果出现这种错误的话,只能尽力使程序安全退出

Exception类:由java程序抛出和处理的非严重错误,如所需文件找不到,运算符出错,数组下标越界,空指针,数据转换异常之类

运行时异常:不要求程序必须对他们做出处理,使用try-catch或者throws进行处理程序可以继续运行

非运行时异常:除了运行时异常外的异常。程序必须捕获或者声明抛出这个异常,否则的话会出现编译错误,无法通过编译

新手上路,如有错误还请给位大佬及时提出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值