Java 学习回顾(二)

(1)Java支持在一个类中声明另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类。
(2)和某类有关的匿名类就是这类的一个子类,该子类没有明显地用类声明来定义,所以称为匿名类
(3)和某类有关的匿名类就是实现该接口的一个子类,该子类没有明显地用类声明来定义,所以称作匿名类
(4)Java的异常可以出现在方法调用过程中,即在方法调用的过程中抛出异常对象,导致程序运行出现异常,并等
待处理。Java使用try-catch语句来处理异常,将可能出现的异常操作放在try-catch语句的try部分,当try部
分中的某个方法调用发生了异常后,try部分将立刻结束执行,转向相应的catch部分。

接下来详细讲一下异常类:

Java使用throw关键字抛出一个Exception子类的实例表示异常的发生。比如Integer.parseInt("ab12")会抛出NumberFormatException对象,流对象调用read去读取不存在的文件,就会抛出IOException。

异常对象可以下面方法输出异常对象的信息

public String getMessage();

public void printStackTrace();

public String toString();

 

try-catch语句与try-catch-finally语句

1.try-catch

try-catch是用来处理异常的,将可能出现异常的操作放在try里面,一旦抛出异常,转向执行catch部分。try-catch语句可以由几个catch组成,分别处理相应的异常。

try{
//可能发生异常的代码
}catch(ExceptionSubClass1 e) {
...
}catch(ExceptionSubClass2 e) {
...
}

try-catch-finally

try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } 

catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 } 

finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally } 

注:如果try-catch结构中执行程序退出代码,即执行System.exit(0),则不执行finally子语句

public class test3 {
    
    public static void aMethod() throws Exception{
        try{
            throw new Exception();
        }finally{
            System.out.println("finally");
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
     try{
         aMethod();
     }catch(Exception e){
         System.out.println("exception");
     }
     System.out.println("finish");
 

    }
 

}

无论是try里面抛出异常,还是抛出异常进入catch处理,最终还是进入finally处理。

这一机制也非常有用:

比如数据库连接模块中,无论try,还是catch,进行了return操作,都会执行finally,可以finally内部执行关闭数据库连接操作。以便于释放已经产生的连接,释放资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值