Java异常类型及使用
Java异常类型及处理
前言: 异常指的是程序在执行过程中,出现了非正常情况,导致了java
的jvm
停止停止。
异常结构为:
Throwable
为顶级父类
- 子类
Error
为严重报错 , - 子类
Exception
就是我们所说的异常了
java
中处理异常的有五个关键字: try、catch 、finally 、 throw 、throwsthrow
抛出异常 , thorws
声明异常 , 捕获异常 try_catch
throw
public class SegmentFault {
public static void main(String[] args) {/**
*throw 抛出异常
*格式 - throw new 异常类名(参数);
* */// 创建一个数组
int [] arr = { 2, 4, 56 ,5};
// 根据索引找到对应的元素
int index = 4;
int element = getElement(arr,index);
System.out.println(element);
System.out.println("owo");
// 运行错误 无法继续
}
/** throw 抛出异常 提醒你必须处理*/
public static int getElement(int [] arr, int index){
// 判断数组索引是否越界
if (index < 0|| index > arr.length -1){
/**
* 条件满足越界 当执行到throw抛出异常后就无法运行,结束方法并且提示
* */
throw new ArrayIndexOutOfBoundsException("数组下标越界异常");
}
int element = arr[index];
return element;
}
}
异常结果为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 数组下标越界异常
throws
public class SegmentFault{
public static void main(String [] args){read("a.txt");
}
public static void read(String path) throws FileNotFoundException, IOException {
if (!path.equals("a.txt")){// 如果没有a.txt
// 如果不是 a.txt 该文件不存在 是一个错误 也就是异常 throw
throw new FileNotFoundException("文件不存在");
}
if (!path.equals("b.txt")){
throw new IOException("文件不存在");
}
}}
异常结果为:
Exception in thread "main" java.io.IOException: 文件不存在
try、catch、finally + Throwable中的常用方法。
Throwable常用方法如下
printStackTrace() :
*打印异常详细信息。getMessage() :
获取异常原因。toString():
获取异常类型及描述信息。public class Demo03 {
public static void main(String[] args) {/**
*try- catch捕获异常
* */// 可能会生成的异常
try {// 捕获或者声明
read("b.txt");
} catch (FileNotFoundException e) {// 使用某种捕获,实现对异常的处理
System.out.println(e);
/**
*Throwable中的查看方法
*getMessage 获取异常信息提示给用户看的
*toString获取异常的类型和异常描述(不用)
*printStackTrace
* */System.out.println("Throwable常用方法测试");
System.out.println(e.getMessage());
// 文件不存在
System.out.println(e.toString());
e.printStackTrace();
} finally {
System.out.println("不管程序怎样,这里都会被执行");
}System.out.println("over");
}public static void read(String path) throws FileNotFoundException {
if (!path.equals("a.txt")) {
throw new FileNotFoundException("文件不存在");
}
}}
输出结果为:
java.io.FileNotFoundException: 文件不存在
-----Throwable常用方法测试------
文件不存在
java.io.FileNotFoundException: 文件不存在
不管程序怎样,这里都会被执行
over
【Java异常类型及使用】注意事项 :try catch finally都不可以单独使用
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机