当前位置: 代码迷 >> 综合 >> day03 异常处理 java基础篇
  详细解决方案

day03 异常处理 java基础篇

热度:11   发布时间:2023-12-18 04:45:13.0

目录

 

一、处理异常

 


一、处理异常

package day.day.up;import java.io.File;
import java.io.FileReader;/*
异常:
异常的体系:
---------|Throwable 
--------------|  Error (错误)  错误一般是由于jvm或者是硬件引发的问题,所以我们一般都不会通过代码去处理。
--------------| Exception (异常) 异常我们一般都会通过代码去处理的。sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun 给我提供异常类还不足以描述我们现实生活中所有不正常情况,
那么这时候我们就需要自定义异常类。异常的处理方式方式一:捕获处理捕获处理的格式try{可能发生异常的代码}catch(捕获的异常类型  变量名){处理异常的代码}捕获处理要注意的细节:1. 如果一个try块中出现了异常的代码,经过处理之后,那么try-catch块外面的代码可以正常执行。2. 如果一个try块中出现了异常的代码,那么在try块中出现异常的代码后面 的语句无法执行。3. 一个try块后面可以跟多个catch块,也就是一个try块可以捕获多种异常的类型,但是捕获的异常类型必须从小到大进行捕获。方式二:抛出处理(throw throws)抛出处理要注意的细节:1. 如果一个方法内部抛出了一个编译时异常对象,那么该方法必须要声明抛出。2. 如果调用了一个声明抛出编译时异常的方法,那么调用者必须要处理。3. 如果一个方法抛出了一个异常对象,那么该方法也会马上停止(一个方法遇到了throw关键字,那么该方法就会马上停止)4. 在一种情况下只能抛出一种异常对象。throw 关键字是用于方法体之内抛出异常对象 的,throws是用于方法 声明上声明抛出异常类型的。finally 块;
finally块的 使用前提是必须要存在try块才能使用。
finally块的代码在任何情况下都会执行的,除了jvm退出的情况。
finally非常适合做资源释放的工作,这样子可以保证资源文件在任何情况下都 会被释放。try块的三种组合方式:
第一种: 比较适用于有异常要处理,但是没有资源要释放的。try{可能发生异常的代码}catch(捕获的异常类型 变量名){处理异常的代码}第二种:比较适用于既有异常要处理又要释放资源的代码。try{可能发生异常的代码}catch(捕获的异常类型 变量名){处理异常的代码}finally{ 释放资源的代码;}第三种: 比较适用于内部抛出的是运行时异常,并且有资源要被释放。try{可能发生异常的代码}finally{ 释放资源的代码;}*/public class Demo06 {
public static void main(String[] args) {FileReader fileReader = null;try{// 放置可能出现异常的代码// 找到目标文件File file = new File("D:\\a.txt");// 建立程序与文件的数据通道fileReader = new FileReader(file);//读取文件char Buf[] = new char[1024]; //动态数组int Length = 0;Length = fileReader.read(Buf);System.out.println("读取到的内容" + new String(Buf,0,Length));}catch(Exception e){System.out.println("读取资源文件失败...");}finally{// 关闭资源try{fileReader.close();System.out.println("释放资源文件成功...");}catch(Exception e){System.out.println("释放资源文件失败...");}}}
}

 

  相关解决方案