java 中的异常分为两类:
1. check exception
2. unchecked exception(runtime exception)
如下类运行时是否会抛出异常?
Code
这里会成功运行。ArithmeticException,是继承自java.lang.RuntimeException
如果将这里的 ArithmeticException 换成 IOException。 这里编译将无法通过,提示:未报告的异常 java.io.IOExceptio; 必须对其进行捕捉或声明以便抛出。
Runtime exceptions:
在定义方法时不需要声明会抛出runtime exception;
在调用这个方法时也不需要捕获这个runtime exception;
runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。
Checked exceptions:
定义方法时必须声明所有可能会抛出的checked exception;
在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去, 继续抛出;
checked exception是从java.lang.Exception类衍生出来的。
在这里的 IOException 就是受检查异常,处理这种异常的办法就是
1. 通过try...catch()....捕获
2. 通过throws将其抛出。
1. check exception
2. unchecked exception(runtime exception)
如下类运行时是否会抛出异常?
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
这里会成功运行。ArithmeticException,是继承自java.lang.RuntimeException
如果将这里的 ArithmeticException 换成 IOException。 这里编译将无法通过,提示:未报告的异常 java.io.IOExceptio; 必须对其进行捕捉或声明以便抛出。
Runtime exceptions:
在定义方法时不需要声明会抛出runtime exception;
在调用这个方法时也不需要捕获这个runtime exception;
runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。
Checked exceptions:
定义方法时必须声明所有可能会抛出的checked exception;
在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去, 继续抛出;
checked exception是从java.lang.Exception类衍生出来的。
在这里的 IOException 就是受检查异常,处理这种异常的办法就是
1. 通过try...catch()....捕获
2. 通过throws将其抛出。