Java笔记--04

1.异常是什么?
第一、异常模拟的是现实世界中”不正常的”事件
第二、java中采用”类”来模拟异常
第三、异常类也是可以创建对象的
NullPointException e=0x1234;
e是引用,e中保存的内存地址指向堆中的”对象”
这个对象一定是NullPointException类型
这个对象就表示真实存在的异常事件
NullPointException是一类异常
2.异常机制的作用?
java语言为我们提供一种完善的异常处理机制
作用是:程序员发生异常事件之后,为我们输出详细的信息
程序员通过这个信息,可以对程序进行一些处理,使程序更加健壮
3.处理异常的两种方式
第一、声明抛出 throws
第二、捕捉 try…catch…
声明抛出:在方法声明的位置上使用throws关键字向上抛出异常
使用throws处理异常不是真正的处理异常而是推卸责任
谁调用异常就会抛给谁,直到异常被抛给JVM或者用try…catch…处理,
如果异常抛给JVM,JVM遇到这个异常就会退出JVM
捕捉 :
异常的捕获和处理需要采用try 和catch来处理,具体格式如下:
try{可能出现异常的代码}
catch(异常类型1 变量){
处理异常的代码;
}
catch(异常类型2 变量){
处理异常的代码;
}…
1.catch语句块可以写多个
2.但是从上到下catch,必须从小类型异常到大类型异常进行捕捉
3.try…catch…中最多执行一个catch语句块,执行结束之后try…catch…就结束了
4.取得异常对象具体信息的两种方法
getMessage();//取得异常描述信息
printStackTrace();//取得异常的堆栈信息,比较适合程序员调试程序,一般将采用此方法
5.关于finally语句
第一、finally语句块可以直接和try语句连用try{}finally{}
第二、try{}catch{}…finally{}也可以
第三、在finally语句块中的代码一定会执行,可以用于释放资源
第四、只有在执行finally语句块之前退出了JVM,finally语句块不执行
try{System.exit(0);}finally{}//该finally语句块不会执行
面试题:

public class Test{
        public static void main(String [] args){
        int i=m1();
        System.out.println(i);
        }
        public static void m1(){
            int i=10;      /*//return i;的执行原理
                            *int temp=i;
            try{            *return temp;
            return i;       */                  //i=?      i=10
            }finally{
            i++;
            System.out.println("m1中的i="+i);  //i=?      i=11
            }
        }
    }

final、finalize、finally?
final关键字修饰的类无法被继承
final关键字修饰的方法无法被覆盖
final关键字修饰的局部变量一旦赋值不能重新赋值
final关键字修饰的成员变量需要手动赋值
final关键字修饰的成员变量和static连用称为常量,常量名要大写
finalize是一个方法名,垃圾回收器在回收java对象之前,会先自动调用java对象的finalize方法
finally是异常处理机制的finally语句块
如何自定义异常,并手动抛出提示信息?
1.自定义编译异常,直接继承Exception
2.自定义运行时异常,直接继承RuntimeException
注意:自定义异常一般提供两个构造方法:一个是无参的构造方法,
另一个是带参数的构造方法,用于传入异常提示信息
要手动抛出异常提示信息要用throw关键字:
throw new 自定义异常名(异常提示信息);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值