异常的学习1

Excpetion和error都是Throwable的子类

error 不可解决的错误 比如 运行内存不够,或者代码编写有误 都会报错 jvm自动终止程序

Excpetion 分为编译期异常和运行期异常 编译期异常可以被检查出来,比如Thread.sleep会爆红

运行期异常就交给jvm去做。

处理编译异常的两种方式:

1.自己处理 try catch

2.throw 交给jvm处理 jvm处理方式: 直接中断程序

处理异常:

1. try catch 立刻马上自己就给处理了

2. throw catch 抛出异常 给调用本方法的人处理, 调用本方法的人有两种处理方式:

a try catch b 也扔出去 给别人处理 如果最终都没有人处理 最终会抛给jvm jvm采用中断处理

Throwable 类常⽤⽅法

public string getMessage() :返回异常发⽣时的简要描述

public string toString() :返回异常发⽣时的详细信息

public string getLocalizedMessage() :返回异常对象的本地化信息。使⽤ Throwable 的⼦类覆

盖这个⽅法,可以⽣成本地化信息。如果⼦类没有覆盖该⽅法,则该⽅法返回的信息与

getMessage 返回的结果相同

public void printStackTrace() :在控制台上打印 Throwable 对象封装的异常信息


public class test1 {

    //第一种方法  抛出异常给jvm处理
    public static void main(String[] args) throws Exception {
        try{

        int a = 1/0;
        }catch (Exception e)
        {
//            throw new Exception("异常!");

        }

    }


}

class test2{
    //第二种方法  抛出异常给jvm处理
    public static void main(String[] args)  {
        try{

            int a = 1/0;
        }catch (Exception e)
        {

//            System.out.println(e.getMessage());/// by zero

//            System.out.println(e);//java.lang.ArithmeticException: / by zero
            e.printStackTrace();
            /*
            java.lang.ArithmeticException: / by zero
            at 面试.异常.test2.main(test1.java:47)*/

        }

    }
 }

 class test3{
    //为了演示得更清楚 这次的异常写在另一个方法里
     public static void main(String[] args) throws ArithmeticException {
         //method的方法没有处理异常 把异常抛出 谁调用它 谁就会获得该异常 处理方法 要么还是抛出 要么自己处理
         method();
      //我们这里处理的是抛异常  或者第二种方法 不抛 自己处理:
//         try{
             method();
         }catch (Exception e )
         {
             e.printStackTrace();
         }
     }


     public static  void  method() throws ArithmeticException
     { //这是运行期异常 可以不处理 jvm会处理 但是为了演示处理异常的抛异常方法 我们这里抛一下异常
         int a = 1/0;
  }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值