java基础系列(八)--异常和处理异常
2018-02-24 16:23
295 查看
异常
程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常分类和关系
Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。
Error : Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。
Exception : Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。
异常分类
Exception 分为两大类:非检查异常(unckecked exception)
检查异常(checked exception)
非检查异常(unckecked exception)
Error 和 RuntimeException 以及他们的子类。javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常。所以如果愿意,我们可以编写代码处理(使用try…catch…finally)这样的异常,也可以不处理。检查异常(checked exception)
除了Error 和 RuntimeException的其它异常。javac强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws)。在方法中要么用try-catch语句捕获它并处理,要么用throws子句声明抛出它,否则编译不会通过。名词解释:
1、检查性异常: 不处理编译不能通过
2、非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台
3、运行时异常: 就是非检查性异常
4、非运行时异常: 就是检查性异常
异常处理
捕获异常
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:
try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }
抛出异常
如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition }
面试重点
Exception 和 Runtimeexception 关系 Runtimeexception 是 Exception 的子类 , 所有的Runtimeexception 不需要强制处理,程序正常编译,除了Runtimeexception 之外的 Exception 其他子类需要 强制处理 try-catch 或者 throw | | throws 否则程序无法通过编译 javactry-catch-finally return 执行顺序和关系 return 一定会执行,在finally之后
return与finally并没有明显的谁强谁弱。在执行时,是return语句先把返回值写入但内存中,然后停下来等待finally语句块执行完,return再执行后面的一段。如果在finally修改返回值内容 ,按情况返回结果: 基本数据类型 不变 返回之前的结果 ; 引用数据类型 改变内容 返回finally修改之后的结果。
相关文章推荐
- 黑马程序员 Java基础 --->异常处理与包
- C#基础知识梳理系列十:异常处理 System.Exception
- Java基础第十七讲:异常处理(一)
- 在java Spring基础上实现自定义异常处理框架教程
- Java基础之异常的处理
- J2SE基础夯实系列之通过例子看六种异常处理的陋习
- 黑马程序员 Java基础_5 Java异常处理
- 黑马程序员---java基础知识(五):异常及处理
- 黑马程序员 Java基础 处理异常信息以及自定义异常
- 黑马程序员——Java基础:异常处理机制
- Java知多少(43)异常处理基础
- Java基础<异常机制>总结(异常体系、Exception特点、异常处理方式)
- Java基础知识3:异常处理,数组与常用类
- C#基础知识梳理系列十:异常处理 System.Exception
- java基础问题----Java中的异常处理机制的简单原理和应用
- Java基础:异常处理
- java 基础:异常处理(六)
- C#基础知识梳理系列十:异常处理 System.Exception
- JAVA基础(十) 异常处理 java.lang.OutOfMemoryError: PermGen space
- Java基础之IO流,创建文件并写入内容与IO异常的标准处理方法