异常处理

异常

一、概念

程序中阻止当前方法或作用域继续执行的问题,称作异常。

异常的好处:将问题进行封装,将正常流程代码和问题处理代码相分离,方便阅读。

分别是Error类和Exception类 。  Error一般是虚拟机错误或者线程死锁,系统错误内存溢出。这里我们主要讨论后者,Exception是编码、环境、用户操作、输入出现问题。

 

二、处理

一般用try-catch或者try-catch-finally捕获并处理异常。

多个catch时父类的catch放在下面

  • try 块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。
  • catch 块:用于处理try捕获到的异常。
  • finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。

 

e.printStackTrace();输出异常的位置类型信息原因
e.toString();输出异常类型及异常信息
e.getMessage();输出异常信息

 

三、异常分类

Java异常类层次结构图

 

 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题

 Exception(异常):是程序本身可以处理的异常。Exception 类有一个重要的子类 RuntimeException。RuntimeException 异常由Java虚拟机抛出

 注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。

 

四、自定义异常

必须是自定义类要继承exception或者RuntimeException

class myexcption extends exception{

  myexcption(String message){

   super(message);

   }

}

 

 五、补充

RuntimeException异常

如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过

如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。

 

 

throw 和throws区别:

throw:使用在函数内,后跟的是异常对象()下面

throws:使用在函数上,后面跟的是异常类,可以跟多个

 

 

异常有两种:

 1.编译时被检测异常

 2.运行时异常(编译时不检测)

 

转载于:https://www.cnblogs.com/StingLon/p/9797253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值