Java Exception
来源:互联网 发布:下拉菜单获取数据库 编辑:程序博客网 时间:2024/06/05 21:00
Java Exception
An exception is an event,which occurs during the execution of a program,that disrupts the normal flow of the program’s instructions–Oracle Java doc
当方法中发生错误,方法创建一个对象并把它传递给运行时系统。对象被称为异常对象;创建一个异常对象并传递给运行时系统叫做抛出异常。
Call Stack
Three Kind of Exception
checked exception
all exceptions are checked exceptions,except for :Error,RuntimeException and their subclasses
error
application can not anticipate(预见)or recover from;Errors are not subject to the catch or specify requirement.
runtime exception
indicate programming bugs.
catching and handling Exceptions
try block
try{ //code}
catch block
try{}catch(ExceptionType1 e1){}catch(ExceptionType2 e2){}
catch more than one one type of exception with one Exception Handler
use ‘|’
catch(IOException|SQLException ex){ logger.log(ex); throw ex;}
try-with-resources statement
package tij.javaexception;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.IOException;import java.nio.charset.Charset;import java.nio.charset.StandardCharsets;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.zip.ZipFile;/** * Created by Administrator on 2015/11/7. */public class TryWithResourse { //如果readline和close方法同时抛出异常 //readFirstLineFromFileWithFinallyBlock方法将抛出finally块中的异常 //try块中抛出的异常将被抑制 static String readFirstLineFromFileWithFinallyBlock(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { if (br != null) br.close(); } } //如果try块和try-with-resources都抛出异常 //那么readFirstLineFromFile方法将抛出try块中的异常 //try-with-resources中的异常将被抑止 static String readFirstLineFromFile(String path) throws IOException { //try-with-resources statement //br会被close不管try语句是正常的完成了还是突然的完成了. try(BufferedReader br= new BufferedReader(new FileReader(path)) ){ return br.readLine(); } } /* try-with-resources语句可以抛出异常 在下面这个方法中try块中抛出一个异常,try-with-resources中抛出俩异常 当try块中抛出一个异常,try-with-resources中抛出一到多个异常的时候 try-with-resources中抛出的异常被抑止 try块中的异常被方法writeToFileZipFileContent抛出 被抑止的异常可以通过调用try块抛出的异常的Throwable.getSuppressed方法提取出来 */ public static void writeToFileZipFileContent(String zipFileName,String outputFileName) throws IOException{ Charset charset= StandardCharsets.UTF_8; Path path= Paths.get(outputFileName); //打开zip文件,并创建输出文件用try-with-resource语句 //当直接跟随的代码块终止时,不管是因为正常执行还是出现异常 //zipFile,writer对象的close方法都被按顺序自动调用 //close方法的调用顺序与创建对象的顺序相反. try( ZipFile zipFile=new ZipFile(zipFileName); BufferedWriter writer= Files.newBufferedWriter(path,charset); ){ } } //try-with-resources 语句可以跟catch和finally,但是它们是在声明的资源被关闭后执行的.}
How to throw Exceptions
all methods use throw statement to throw an Exception
throw someThrowableObject;//Throwable 类的子类
Throwable class and It’s Subclasses
Error class
当动态链接失败或者虚拟机硬件错误出现,虚拟机抛出Error
Exception class
一个Exception类表明一个问题出现了,但不是严重的系统问题
RuntimeException表明对API的错误使用
Chained Exceptions
Chained Exceptions
总结
程序可以用异常来表明一个错误的出现。用throw来抛出异常并提供一个异常对象-Throwable类的子类对象。一个抛出未捕获的受检查异常的方法必须在方法声明中包括一个throws子句。
- try语句块用来识别一块会出现异常的代码
- catch块用来异常处理,处理特定的异常
- finally语句块保证执行,用来关闭文件,恢复资源除此之外在try中代码之后进行清理。
try语句至少包含一个catch块或者一个finally块和多个catch块
参考来源:https://docs.oracle.com/javase/tutorial/essential/exceptions/
0 0
- Java Exception: MISSING EXCEPTION
- java exception
- java-Exception
- Java exception
- Java exception
- Java Exception
- java Exception
- JAVA Exception
- Java Exception
- Java Exception
- java exception
- java EXception
- java Exception
- Java Exception
- Java Exception
- Java Exception
- Java Exception
- Java Exception
- QT 的信号与槽机制介绍
- Codeforces Round #325 (Div. 1) 解题报告
- HDU 2234 无题I
- 如何解决win7开机提示未能连接一个Windows服务
- C语言实现链表之单向链表(九)在任意位置插入结点
- Java Exception
- 快速排序
- 手机端实现Protocol Buffer
- scala + intellij idea 环境搭建及编译、打包
- Ackerman函数
- 开始奋斗的程序媛
- Unbuntu之安装SVN
- oracle 日期操作 汇总
- ARM汇编语言从1+2+......+100