异常
Java 异常概述
什么是异常?
程序运行中不正常的情况
程序在运行的过程中,用户输入的数据格式有问腿
读取文件,文件被强制删除
网络传输过程中,断网了
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等
指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止
异常指的并不是语法错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行
异常的抛出机制
Java中是如何表示不同的异常情况,又是如何让程序员得知,并处理异常的呢?
Java中把不同的异常用不同的类表示,一旦发生某种异常,就创建该异常类型的对象,并且抛出
然后程序员可以捕获到这个异常对象,并处理;
通过catch(){}代码块捕获异常,程序正常进行
如果没有捕获这个异常对象,那么这个异常将会导致程序终止
常见的异常
-
ArithmeticException public class ArithmeticException extends RuntimeException //抛出异常算术条件时抛出。 例如,“除以零”的整数会抛出此类的一个实例
-
ArrayIndexOutOfBoundsException public class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException //抛出以表示使用非法索引访问数组。 索引为负数或大于或等于数组的大小,即数组越界
-
ArrayStoreException public class ArrayStoreException extends RuntimeException //抛出以表示尝试将错误类型的对象存储到对象数组中
-
StringIndexOutOfBoundsException public class StringIndexOutOfBoundsException extends IndexOutOfBoundsException //抛出`String`方法来指示索引为负或大于字符串的大小。 对于某些方法(如charAt方法),当索引等于字符串的大小时,也会抛出此异常。
(API查询)
java异常体系结构
java.lang.Throwable 是java异常体系中的根类
里面有两个常用的方法:
public void printStackTrace()//打印栈中的异常信息
public String getMessage() //获取到异常信息
有两个子类:
java.lang.Error// 错误 是java程序无法处理的,例如内存不够用了
java.lang.Exception//异常 ,这是本章要学习的, 出现的一般性问题,
可以使用java中的异常处理机制进行处理的
广义异常: 所有的问题 语法错误,error, exception
狭义异常: exception
异常处理
try{
可能会发生异常的代码
}catch(异常类型 引用名){
异常处理代码
}finally{
必须执行代码
}