学习java第36天

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);

    }

}

*finally块和return

在 try块中即便有return,break,continue等改变执行流的语句,finally也会执行

finally中的return 会覆盖 try 或者catch中的返回值

finally中的return或异常会抑制前面try或者catch块中的异常

3.明天学习内容:字符串的不变性

原文地址:https://www.cnblogs.com/SirNie/p/13471571.html