异常
用于发现问题、反馈问题以及解决问题的一套机制
Throwable类—异常的顶级父类
子类:
1.Error:是一个合理的应用程序,不应该试图抓住的严重问题(改变外部需求、环境、资源等等)
2.Exception:是一个合理的应用程序可以处理也可以不处理
处理方式:(1.抛出 2.捕获)
异常分类:
1.编译时异常
在编译时期出错
一定要处理
除了RuntimeException类以及子类以外其他的异常类都是编译时异常
2.运行时异常
在运行时期出错
可以处理也可以不处理
RuntimeException类以及子类都是运行时异常
几种必须要知道的异常:
编译时异常:
CloneNotSupportedException–克隆不支持异常
ParseException–解析异常
运行时异常:
ArithmeticException–算术异常
NullPointerException–空指针异常
ArrayIndexOutofBoundsException–数组下标越界异常
ClassCastException–类型转换异常
NumberFomatException–数字格式异常
代码演示:
package cn.tedu.exception;
import java.text.SimpleDateFormat;
import java.util.logging.SimpleFormatter;
public class ExceptionDemo {
public static void main(String[] args) {
//算术异常---编译没错,运行有错
try {
System.out.println(1 / 0);
}catch(Exception e){
}
//数组下标越界异常---编译没错,运行有错
int[] arr={
1};
arr[1]=1;
//克隆不支持异常---编译有错
new ExceptionDemo().clone();
//解析异常---编译有错
new SimpleDateFormat().parse("");
}
}
读取文件内容异常Java代码演示:
package cn.tedu.exception;
import javax.sound.midi.Soundbank;
import java.io.FileNotFoundException;
import java.nio.file.FileSystemNotFoundException;
public class ExceptionDemo1 {
public static void main(String[] args) {
//调用方法读取文件
//方法上抛出几个异常需要处理几个异常
try {
//try块里存放的是可能会出问题的代码
String s=readFiles("w:\\a.avi")