JAVA基础学习 异常处理

异常处理

目录

异常处理

1 异常

1.1  检查性异常:无法避免

1.2 运行时异常(RuntimeException):可以避免

1.3捕获异常

1.4抛出异常

2错误 Java.lang.error


1 异常

所有异常的类都是java.lang.Exception的子类

1.1  检查性异常:无法避免

因为用户错误或者其他外在操作错误,导致的代码无法继续执行,引起的异常。比如:断网、处理的文件不存在等。

常见的检查性异常类:

1 ClassNotFoundException:应用程序试图加载类时,找不到相应的类,抛出该异常

2 lllegalAccessException:访问一个类被拒绝的时候,抛出该异常

3 NoSuchFieldException:请求的变量不存在

4NoSuchMethodException:请求的方法不存在

1.2 运行时异常(RuntimeException):可以避免

运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。比如空指针异常

常见的运行时异常类:

1 ClassCastException:对象类型转换异常

2 IndexOutOfboundsException:下标越界异常

3 NullPointerException(NPE): 空指针异常

1.3捕获异常

try{


}

catch(){

}

注意:如果try 活 catch中有return返回值,则先执行完finally中的代码,再返回数据 

1.4抛出异常
public static void () {

    //在本方法中,手动抛出一个异常
    throw new NullPointerException();

}

//throws将异常抛出给上一级处理,最终将抛给jvm处理

面试考点

注意:如果try 活 catch中有return返回值,则先执行完finally中的代码,再返回数据 

基本数据类型
private static int t2(){
    int i=10;
    try{
        int a=i/0;
        return i;

}catch (Exception e){
        //临时缓存返回值
        return i;
}finally{
        i++;

}
}


输出为10
----------------------------------------------------------------------------------



引用数据类型

private static Student t3(){

    Student  stu = new Student();
    stu.setAge(20);
    try{

    int 10/0;
    return stu;
    //引用类型,返回值(临时缓存的是对象的地址)

    }catch(Exception e ){


    return stu;

}finally {

    stu.setAge(30);
}
    
}


输出为20

-----------------------------------------------------------------------------------
字符串


private  static String t4(){

    String a="abc";
    try{
        int i=10/0;
        return a;
        //缓存的是abc在常量池中的地址
}catch(Exception e ){
        return a;

}finally{
        a = "dgr";
}

}
输出为abc

2错误 Java.lang.error

错误不是异常,而是脱离程序员控制的问题,错误在代码中通常被忽略。

例如:

JVM内存溢出。错误在编译阶段也是检查不到的。一般的,程序不会从错误中恢复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值