java中的 try{}catch

java中的 try{}catch

1.try{}catch的目的

如果没有try的话,出现异常会导致程序崩溃。而try则可以保证程序的正常运行下去

2.try{}catch的写法
 try{
    //需要被检测的异常代码
        // 可能出错的代码
    }catch (Exception e){  //这里表明是什么错误 ---- 重点
    //异常处理,即处理异常代码
    //几种常见的处理形式
    }

举个栗子:

 //日志记录错误 + 预判错误形式
     logger.error("调用[日志接口]异常", e); 
     
     //返回错误时需要的值
     obj.setState(1);
     obj.setErrmsg("项目配置可能包含重复数据");
     return obj; 
     
     //在命令行打印异常信息在程序中出错的位置及原因
     e.printStackTrace();
     
     //抛出自定义的异常
     throw new BusinessException(DescribableEnum.OUTECONOMY_ACCOUNT_AMOUNT_BIZ_DATE);
    }finally {
    //一定会执行的代码 try之前就已经执行了 后显示
    }
}
3.异常类型准确定义

(1)NullPointerException : 空指针异常

(2)ClassNotFoundException : 指定的类不存在异常

①类的名称和路径是否正确
②依赖的包是否正确
③注解错误,调用不到

(3)ArithmeticException : 数学运算异常

①除数为0

(4)ArrayIndexOutOfBoundsException : 数组下标越界

①如:数组有 2 个位置,却调用了第3个

(5)IllegalArgumentException : 方法的参数错误

①比如音量调节方法中的音量参数如果写成负数
②如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常
③Mapper.xml的 id重复

(6)IllegalAccessException : 没有访问权限

①检查 public private 等

(7)IncompatibleClassChangeError : 不兼容的类变化错误

①检查依赖

(8)InstantiationError : 实例化错误

①new操作符 构造一个抽象类或者接口时抛出该异常

(9)LinkageError : 链接错误

(10)StackOverflowError : 堆栈溢出错误

①当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误

(11)ClassCastException : 类型强制转换异常

(12)NumberFormatException : 字符串转换为数字异常

(13)SQLException : 操作数据库异常

(14)IOException :输入输出异常

(15)NoSuchMethodException:方法未找到异常

(16)RuntimeException:运行时异常

(17)SecurityException:安全异常

(18)TypeNotPresentException:类型不存在异常

注:
(1)正确使用try catch 异常,try 不是能吃掉所有的异常,必须要在catch中使用正确的异常才能捕获。但是在实际开发中,很难精确的捕获可能存在的异常。因此我们大多使用第一种情况,exception是所有异常的父类,能捕获到所有的异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值