Java异常机制主要依赖try、catch、finally、throw和throws五个关键字。
try后面中的是可能引发异常的代码块,后面可以有多个catch块,但是只执行一个。
catch对应异常类型,
finally用于回收try中打开的物理资源。
throws用于抛出可能抛出的异常,throw用于抛出实际异常,可以作为单独语句使用。
Java异常分为2种,Checked异常和Runtime异常(运行是异常),Checked异常认为是可以在编译阶段处理的。
异常继承体系图;
Java的非正常情况分为两种:异常(Exception)和错误(Error),都继承Throwable父类。
Error指系统崩溃、虚拟机出错、动态链接失败等无法恢复或不可捕获导致程序中断的。
import java.io.IOException;
public class TestException
{
public static void main(String[] args) throws IOException// 如果使用throws抛出异常下面不需要使用try、catch来捕获
{
/**
* 父类异常应该在子类异常后面(先处理小异常,在处理大异常)
*/
try
{
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
// System.out.println(a);
int c;
if (0 != b)
{
c = a / b;
} else
{
throw new Exception("分母为0");
}
System.out.println("result:" + c);
} catch (IndexOutOfBoundsException e)
{
System.out.println("数组越界");
e.getMessage();// 异常详细描述字符串
e.printStackTrace();// 异常跟踪栈
} catch (Exception e)
{
System.out.println("未知异常");
} finally
{
// 回收物理资源
}
}
}