• java异常处理


    异常指的是什么?

    程序被异常打断,如果没有异常处理机制,后面的流程就没办法继续执行;
    有了异常处理机制后,程序在发送异常的时候就不会中断,可以对异常进行捕获,然后改变程序执行的流程;

    throws和throw的区别

    //1.throws关键字用于声明异常 它的作用try-catch相似 而throw 用于主动抛出异常/是显示抛出异常的(当除数为0的时候,程序会主动抛出ArithmeticException);
    //2.throws 关键字后面后者很多异常的名字[myMethod1() throws ArithmeticException, NullPointerException{],
    //throw关键字后面跟的是异常对象[throw new exception_class("error message");];
    //3.throws 关键字出现在方法签名上,而throw关键字出现在方法体里;
    //4.throws关键字在什么异常的时候可以跟多个,用逗号隔开;而throws关键字每次只能抛出一个异常;
    1. public class DingTalkEncryptExceptionx extends Exception {
    2. private static Map msgMap = new HashMap();
    3. private Integer code;
    4. public Integer getCode() {
    5. return this.code;
    6. }
    7. public DingTalkEncryptExceptionx(Integer exceptionCode) {
    8. super((String)msgMap.get(exceptionCode));
    9. this.code = exceptionCode;
    10. }
    11. static {
    12. msgMap.put(0, "成功");
    13. msgMap.put(900001, "加密明文文本非法");
    14. msgMap.put(900002, "加密时间戳参数非法");
    15. msgMap.put(900003, "加密随机字符串参数非法");
    16. msgMap.put(900005, "签名不匹配");
    17. msgMap.put(900006, "签名计算失败");
    18. msgMap.put(900004, "不合法的aes key");
    19. msgMap.put(900007, "计算加密文字错误");
    20. msgMap.put(900008, "计算解密文字错误");
    21. msgMap.put(900009, "计算解密文字长度不匹配");
    22. msgMap.put(900010, "计算解密文字corpid不匹配");
    23. }
    24. }

    异常要怎么解决?

    java标准内建了一些通用的异常 这些类以throwable为顶层父类;
    throwable派生出error类和exception类;
    error类以及他的子类的实例,代表了jvm本身的错误.错误不能被程序员通过代码处理,error 很少出现;
    Exception以及他的子类,代表程序运行时发生的各种不期望发生从事件,可以被java异常处理;
    throw 关键字的作用是抛出一个异常,抛出的是一个异常类的实例对象, 在异常处理中,try 语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出;
    thows  关键字声明的方法表示方法不处理异常,而是交给方法调用的时候处理

    常见的异常有哪些?

    • NullPointerException 空指针异常
    • ArrayIndexOutOfBoundsException 索引越界异常
    • InputFormatException 输入类型不匹配
    • SQLException SQL异常
    • IllegalArgumentException 非法参数
    • NumberFormatException 类型转换异常

  • 相关阅读:
    标签属性disabled selected checked等布尔类型赋值不生效?
    洛谷P1227 完美的对称
    雷池社区WAF:保护您的网站免受黑客攻击 | 开源日报 0918
    D. Chip Move(思维,模拟)
    香港Web3.0生态现状
    万字 HashMap 详解,基础(优雅)永不过时
    多测师肖sir_高级讲师_第二个月python讲解02
    系统编程:互斥锁,条件变量
    深度学习环境配置(Anaconda+pytorch+pycharm+cuda)
    Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)
  • 原文地址:https://blog.csdn.net/ruiguang21/article/details/132896863