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关键字每次只能抛出一个异常;
public class DingTalkEncryptExceptionx extends Exception {
    private static Map<Integer, String> msgMap = new HashMap();
    private Integer code;

    public Integer getCode() {
        return this.code;
    }

    public DingTalkEncryptExceptionx(Integer exceptionCode) {
        super((String)msgMap.get(exceptionCode));
        this.code = exceptionCode;
    }

    static {
        msgMap.put(0, "成功");
        msgMap.put(900001, "加密明文文本非法");
        msgMap.put(900002, "加密时间戳参数非法");
        msgMap.put(900003, "加密随机字符串参数非法");
        msgMap.put(900005, "签名不匹配");
        msgMap.put(900006, "签名计算失败");
        msgMap.put(900004, "不合法的aes key");
        msgMap.put(900007, "计算加密文字错误");
        msgMap.put(900008, "计算解密文字错误");
        msgMap.put(900009, "计算解密文字长度不匹配");
        msgMap.put(900010, "计算解密文字corpid不匹配");
    }
}

异常要怎么解决?

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

常见的异常有哪些?

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值