要点
- catch 不能独立于 try 存在。
- catch里面不能没有内容
- 在 try/catch 后面添加 finally 块并非强制性要求的。(一般用例扫尾,如,Scanner.close())
- try 代码后不能既没 catch 块也没 finally 块。
- try里面越少越好。
- try, catch, finally 块之间不能添加任何代码。
- finally里面的代码最终一定会执行(除了JVM退出)
- 如果程序可能存在多个异常,需要多个catch进行捕获。(异常的范围大小要逐步扩大)
- 异常如果是同级关系,catch谁前谁后没有关系
- 如果异常之间存在上下级关系,上级需要放在后面
用例
public class ExceptionTest {
public void save(User user)
{
if(user == null)
throw new IllegalArgumentException("User对象为空");
}
public static void main(String args[])
{
try
{
int a[] = new int[5];
a[10] = 7;
}
catch(ArrayIndexOutOfBoundsException ex)
{
System.out.println("超出数组范围!");
}
finally
{
System.out.println("一定会执行的finally");
}
System.out.println("异常处理结束!");
}
}
