Java 异常处理

  1. 异常

    Error:Java虚拟机无法解决的严重问题。如:JVM 系统内部错误、资源耗尽等严重情况。比如:StackOverflowError 和 OOM。一般不编写针对性的代码进行处理。

    Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。比如:若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。

    检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

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

    非运行时异常 (编译异常):是 RuntimeException 以外的异常,类型上都属于 Exception 类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException 等以及用户自定义的 Exception 异常,一般情况下不自定义检查异常。

    错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

  2. try-catch-finally

  3. throwthrows

  4. 自定义异常

    class MyException extends Exception{
        static final long serialVersionUID = -3387516993124229948L;
        private int idnumber;
        public MyException(String message, int id) {
            super(message);
            this.idnumber = id;
        }
        public int getId(){
            return idnumber;
        }
    }
    public class MyExpTest {
        public void regist(int num)throws MyException {
            if (num < 0){
                throw new MyException("人数为负值,不合理", 3);
            }else {
                System.out.println("登记人数" + num);
            }
        }
        public void manager(){
            try {
                regist(100);
            }catch (MyException e){
                System.out.println("登记失败,出错种类" + e.getId());
            }
            System.out.println("本次登记操作结束");
        }
    
        public static void main(String[] args) {
            MyExpTest t = new MyExpTest();
            t.manager();
        }
    }
    
  5. 小悟
    世界上最遥远的距离,是我在if里你在 else 里,似乎一直相伴又永远分离;
    世界上最痴心的等待,是我当 case 你是 switch,或许永远都选不上自己;
    世界上最真情的相依,是你在 try 我在 catch。无论你发神马脾气,我都默默承受,静静处理。到那时,再来期待我们的 finally。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值