如何去处理异常呢?
A:try...catch...finally
B:throws
A:try...catch...finally的格式:
try{
可能出现问题的代码;
}catch(异常类名 变量名){
可以给一个简单的提示;
}finally{
释放资源
}
简化格式:
try{
可能出现问题的代码;
}cahtch(异常类名 变量名){
可以给一个简单的提示;
}
注意:
A:try里面的代码越简单越好
B:catch后面必须有内容,并且哪怕一句简单提示
C:举例ArithmeticException:属于RuntimeException的子类,并且最大的异常Exception:对于具体的异常必须明确给出
如果是一个异常怎办:只要捕获了异常,后面的语句可以执行
两个异常怎办
a:针对两个异常
要么分别的进行try...catch
b:try{
可能出现问题的代码;
}catch(异常类名 变量名){
简单的提示;
}catch(异常类名 变量名){
提示信息..
}
注意:a:这种格式的catch后面的异常类名必须处于平级关系
b:一旦try里面的代码与catch后面的异常类名匹配的情况,这个try...catch{}语句结束
c:异常类名:是什么异常就明确给出异常类名,不建议给出Exception
try里面的代码会产生一个异常对象,这个异常对象和cahtch后面的异常类名进行匹配,如果该类对应的是某个类型,那么就在控制台输出该异常的信息
异常中常见的方法:
getMessage()
获取异常信息,返回字符串
toString();
该类对象的name(全路径名的形式)
(冒号:空格 )
//printStackTrace()
获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void
继承时父类与子类的异常关系:
A:子类中有方法重写的时候,抛出的异常要是和父类中的异常一致要么就是父类异常的子类(父亲坏了,儿子不能比父亲还坏)
B:如果父类抛出多个异常,子类在重写父类中的方法的时候,该方法抛出异常一般情况是父类异常的子类
C:如果父类中的方法没有抛出异常,子类在重写父类的这个方法的时候的时候一定不能抛出异常,如果抛,只能try,不能throws
问题:
catch里面可不可以有有return语句,执行finally中的代码,是在return还是在return后执行
可以有return语句,前执行
try...catch里面的变形格式
try...catch...finally
try...cathc...catch...finally
try...finally
最终finally是用来释放资源的.