大学生必会的异常处理机制!!!

由来
1.程序出现错误。
2.不应该出现了一个不算致命的问题,就导致整个程序或系统崩溃!!!
3.异常处理机制(try-catch-finaly).
 
类型:

"Throwable"是所有错误和异常的超类。在Java中,错误和异常都继承自Throwable类。
错误(Error)表示通常不应该由应用程序捕获的异常情况。例如,虚拟机错误或内存不足条件。

异常(Exception),则表示Java程序应该捕获和处理的条件,如输入/输出错误、算术错误或与API的不正确使用相关的错误

5种常见的运行时异常:ArithmeticException、NumberFormatException、NullPointerException、ArryIndexOutOfBoundsException、ClassCastException

package com.jsu.zhang;
//数学运算异常!!!
public class ArithmeticException {
    public static void main(String[] args) throws Exception {//为什么有异常信息,默认的throws,层层抛到了JVM
        int a = 10;
        int b = 0;
        int c ;
       c = a/b;
     /*   try {
            c = a/b;
        } catch (Exception e) {
            System.out.println("就是这个异常:"+e.getMessage());
        }*/
///中断!!!!!!!!!!!!!!
        System.out.println("继续");
    }
}

package com.jsu.zhang;

public class ArrayIndexOutOfBoundsException {
    public static void main(String[] args) {
        int [] arr= {1,2,3,4,};
        for (int i = 0;i<=arr.length;i++){数组下标越界异常!!!!
            System.out.print(arr[i]+" ");
            System.out.print("\t");
        }
        for (int j : arr) {
            System.out.print(j+" ");
        }
    }
}

package com.jsu.zhang;

class A {}
class B extends A{}
class C extends A{}
public class ClassCastException {

    public static void main(String[] args) {
        A b = new B();//向上转型//
        B b2 = (B) b;//向下转型//
        C c1 = (C) b;//将对象强制转换为不是实例子类时抛出的异常!!!

package com.jsu.zhang;

public class NumerFormatException {
    数字格式异常//parse 语句分析
    public static void main(String[] args) {
//        String name ="长得帅";
//        double number = Double.parseDouble(name);//字符串转换为一种数值类型,但改字符串不能转为适当的格式时
//        System.out.println(number);

        String name1 ="0.123";
        double number1 = Double.parseDouble(name1);//字符串转换为一种数值类型,但改字符串不能转为适当的格式时
        System.out.println(number1);
    }
}

package com.jsu.zhang;
/空指针异常!!!!
public class NullPointerException {
    public static void main(String[] args) {
        String name1 = "张得帅!!!";
        System.out.println(name1.length());

        try {
            try {
                String name2 = null;
                System.out.println(name2.length());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        } catch (RuntimeException e) {
            throw new RuntimeException(e);
        }
    }
}

处理:
1.try-catch-finally
   try{
可能有异常的代码
}

  catch(Exception e){
  1.异常有了
 2.系统封装成 Exception 对象 e ->catch
3.程序猿自己处理 
 4.没有异常->catch代码块不执行!!!!
}

finally{
1.必执行!
2.通常将释放资源的代码放在finally中!!!
}

2.throws机制
  没有try-catch-finally,默认throws

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值