java-初学异常的学习笔记

异常的特点

1.异常在java中以类的形式存在,都可以创建对象。
2.编译时异常和运行时异常,都发生在运行阶段。

异常的类型

1.编译时异常(受控异常、受检异常)
一般发生的概率较高(需要在运行之前进行预处理)
2.运行时异常(非受控异常、未受检异常)
一般发生的概率较低

java中异常的处理方式

1.在方法声明的位置上,使用throws关键字,抛给上一级
2.使用try…catch语句进行异常的捕获
 catch异常的方法:
  1.getMesage 获取异常的简单描述
  2.printStackTrace() 打印异常堆栈追踪信息(常用)

注意:捕获异常后,后续代码继续执行,这就体现出java的健壮性

关于try…catch中的finally子句
1.在finally子句中代码是最后执行的,并且是一定会执行的,而且finally子句必须和try一起出现
2.通常在finally语句块中完成资源的释放

面试题

问:以下程序的输出结果是什么?
答:输出结果:100

Tip:这里关系到java本身的特点:1>逐行执行,2>return语句在方法最后执行

public class FinallyTest {
    public static void main(String[] args) {
        int result=m();
        System.out.println(result);
    }
    public static int m(){
        int i=100;
        try{
            return i;//return是一定最后执行的
        }finally {
            i++;//这个先执行,return后执行,但是还是输出100
        }
    }
}
final finally finalize的区别

final:是一个关键字,表示最终的不变的
finally:是一个关键字,在异常处理机制中与try联用,
		在finally子句中代码是最后执行的,并且是一定会执行的
finalize: finalize()是Object中的一个方法,作为方法名出现,是个标识符

自定义异常类

固定写法:
1.编写一个类继承Exception或者RuntimeException
2.提供两个构造方法,无惨、有参(带String参数)
(注意:子类抛出的异常只能比父类少,不能多)
例如:

//自定义异常类
class ExceptionTest extends Exception{
    public ExceptionTest() {
    }

    public ExceptionTest(String s) {
        super(s);
    }
}
//测试类
public class DiyExceptionTest{
    public static void main(String[] args) {
        ExceptionTest e1=new ExceptionTest("用户名不能为空");

        //打印异常信息
        e1.printStackTrace();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值