1.处理异常
try...catch,try...catch...finally,try...finally
try{
可能会发生的异常
}catch(异常类型 异常名(变量)){
针对异常进行处理的代码
}catch(异常类型 异常名(变量)){
针对异常进行处理的代码
}...
finally{
资源代码;
}
*注:
catch 不能独立于 try 存在
catch里面不能没有内容
try里面越少越好
try, catch, finally 块之间不能添加任何代码
finally里面的代码最终一定会执行
如果程序可能存在多个异常,需要多个catch进行捕获
*throw和throws处理异常的区别:
throw:指的是在方法中人为抛出一个异常对象
throws:在方法的声明上使用,表示此方法在调用时必须处理异常
2.自定义异常
如果要自定义异常类,则扩展Exception类,因此这样的自定义异常都属于检查异常
自定义的异常包含如下的构造函数:
一个无参构造函数
一个带有String参数的构造函数,并传递给父类的构造函数
一个带有String参数和Throwable参数,并都传递给父类构造函数
一个带有Throwable 参数的构造函数,并传递给父类的构造函数
IOException类代码:
package java.io;
public class IOException extends Exception {
static final long serialVersionUID = 7818375828146090155L;
public IOException() {
super();
}
public IOException(String message) {
super(message);
}
public IOException(String message, Throwable cause) {
super(message, cause);
}
public IOException(Throwable cause) {
super(cause);
}
}
在 try块中即便有return,break,continue等改变执行流的语句,finally也会执行
finally中的return 会覆盖 try 或者catch中的返回值
finally中的return或异常会抑制前面try或者catch块中的异常
3.明天学习内容:字符串的不变性