该如何做异常处理
该如何做异常处理
首先要清楚什么是运行时异常和非运行时异常
再说具体的,我目前的单位要求异常处理要在service层
于是我现在的异常处理基本都是
首先要清楚什么是运行时异常和非运行时异常
运行时异常(RuntimeExceptions)
想象你在玩一款游戏,游戏中有各种规则。如果某个玩家违反了这些规则,游戏就会自动中断,提示这个玩家犯了错。这种情况下,游戏会弹出一个错误提示,告诉你哪里做错了,然后让你重新开始或改正错误。
在编程里,“运行时异常”就像是游戏里的这些规则。如果你写的代码违反了某些基本规则,比如访问了一个不存在的位置、尝试把一个字符串当成数字使用等,程序就会在运行时(即当你真正玩游戏的时候)中断,并告诉你哪里出了问题。
特点:
- 不需要特别设置,只要程序一出错,就会直接报错。
- 大部分是程序员写代码时不小心造成的错误。
- 比如:访问数组时超出了它的范围、使用了空的对象等。
非运行时异常(受检异常)
再想象一下,你在玩一个需要联网的游戏。有时候,你的网络连接不上,或者服务器有问题,这时候游戏也会中断,但这是游戏设计之外的事情。为了不让玩家措手不及,游戏会在开始前检查网络连接是否正常,或者在玩家操作之前给出提示。
在编程中,“非运行时异常”就像这种情况。它们通常是因为外部的一些不可控因素导致的,比如读取文件时文件不存在、网络连接失败等。对于这类问题,我们需要提前做好准备,告诉程序如果遇到这种情况该怎么办。
特点:
- 必须在编写代码时就考虑到如何处理这些异常。
- 通常不是代码本身的问题,而是外部条件不符合要求。
- 比如:读取文件时找不到文件、数据库连接失败等。
再说具体的,我目前的单位要求异常处理要在service层
于是我现在的异常处理基本都是
Exception e 可以覆盖两种异常,事务的问题也可以粗暴的只加一个@Transactional 就不用过于考虑了
踩得坑:
一些自定义的异常类使用前要看看是什么类型比如已经有了Exception e 再写一个trycatch runtimeException的就画蛇添足了