异常

异常的慨述和分类 
  A异常的慨述
    异常就是java程序在运行过程中出现的错误
  B异常的分类
    通过API查看throwable
    error
        服务器启机。数据库奔溃等
    exceptin
  C:异常的继承体系
    throwable
        error
         exceptin
          runtimeException
JVM默认是如何处理异常的
 Ajvm默认是如何处理异常的
    main函数收到这个问题时。有两种处理方式:
    a自己将该问题处理。然后继续运行
    b自己没有针对的处理方式、只有交给main的jvm来处理
    jvm有一个默认的处理方式。就将该异常进行处理
    并将该异常的名称。异常的信息。异常出现的位置打印到控制台上。同时将程序停词运行
B案例演示
    jvm默认如何处理异常
  public static void main(String[] args){
      try{
          System.out.println(1/0);
        ) catch (Exception e) {            //Excption e = new ArithmeticException("/ by zero")
        //System.out.println(e.getMessage());      //获取异常信息
        System.out.println(e.toString());    //调用tostring方法,打印异常类名和异常信息。
        e.printstackTrace();    //jvm默认就这种方式处理异常
        }
      }
  }

public static void main(String[] args){
     //demol();
     Demo d = new Demo();
     int x = d.div(10, 0);
     System.out.println(x);
 }
  public static void main(){
      int[] arr = (11.22.33.44.55);
      //arrr = null;        //NullpointerException        空指针异常
      System.out.println(arr[10]);        //ArraIndexOutofBoundsException数组牵引越界异常
  }
 }
 class Demo{
     /*
     ×chu法运算
     */
     public int div(int a.int b) {        //a = 10,b = 0
         return a / b;        /// 10 / 0 当被除数是10,除数是0时违背了算数运算法则抛出异常。
         //new ArithneticException("/ by zero")
         
     }
 }
异常(try。。。catch的方式处理异常1)
1异常处理的两种方式
try...catch...finally
try catch 
try catch fially 
try finally
throws
try...catch异常处理的基本格式
try...catch...finally
案例演示
try....catch的方式处理1个异常
try;用了检查异常
catch;用了捕获异常
finally;释放资源
public static void main(String[] args){
    Demo2 d = new Demo2();
    try{
        int x = d.div(10, 0 );
        Syste.out.println(x);
        }catch(ArithmeticException a) {  //ArithmeticException a = new ArithmeticException();
            System.out.println("出错了。除数为令了");//只有try出问题了才会找catch
        }
        System.out.println("11111111111")
}


class Demo2{
     /*
     ×chu法运算
     */
     public int div(int a.int b) {        //a = 10,b = 0
         return a / b;    

public static void main(String[] args) {
    try{
        System.out.println(1/0);
    } catch (Exception e){   //Exception e = new ArithmeticException("/ by zero")
    //System.out.println(e.getMessage());    //获取异常信息
    //System.out.println(e);   //调用toString方法。打印异常类名和异常信息
    e.printStackTrace();    //jvm末日就用这种方式处理异常
    }
}
finally关键字事务面试题
面试题1
    final.finally和finalize的区别
面试题2
    如果catch里面return有语句,请问finallly的代码还会执行吗?如果会.请问是在return前还是在return后。
public static void main(String[] args) {
    }
}
class Demo {
    public int method() {
        int x = 10;
        try {
            x = 20;
            System,out,println(1/0);
            //return x;
        } cath (Exception e){
            x = 30;
            //return x;
            return x;
        } finally{
            x = 40;
            //return x;    千万不finally要在里面写返回语,finally因为的作用是为了释放资源,是肯定
            //如果在这里写返回语句,那么try和catch的结果就会被改变
        }
    }
}
练习
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个整数")
    
    while(true) {
            String line = Integer.parseInt();   //将键盘录入的结果存储在line中
        try{
            int num = Integer.parseInt(line);   //将字符串转换为整数
            System.out.println(Integer.toBinaryString(num));  //将整数转换为二进制
            break;                //跳出循环
        }catch(Exception e) {
            new BigInteger(line);
            System.out.println("录入错误,你录入的是一个过大整数,请从新输入一个整数");
        }catch (Exception e2) {  //alt + shif + z (try catch快捷建)
            tey{ new BigDecimal(line);
            System.out.println("录入错误,你录入的是一个过大整数,请从新输入一个整数");
            }catch (Exception e1) {
                System.out.println("录入错误,你录入的是一个过大整数,请从新输入一个整数")
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值