当前位置: 首页 > news >正文

Java throw exception时需要重点关注的事情!

引言

由于线上报错,排查错误时,发现抛出的是一个自定义异常,本来想根据自定义异常行数快速定位,结果发现这个异常定位行数根本就不是抛出异常的地方,到底是怎么回事呢。

场景复现

简单复现,我们就不实现自定义异常了,使用已经有的。
代码如下,可以猜测一下抛出的异常会是多少行,是20嘛,nonono
在这里插入图片描述

源码:

public static void main(String[] args) {String flag = "2";UnsupportedOperationException exception = new UnsupportedOperationException();if("1".equals(flag)){throw exception;}if("2".equals(flag)){throw exception;}if("3".equals(flag)){throw exception;}}

让我们看一下结果,没有错出乎意料吧,13行,不是throw的行数,是初始new exception的行数。

在这里插入图片描述

结论

由于可能多个判断条件下,需要抛出相同的自定义异常,并且自定义异常被我们套的层级及命名都显得过长等等原因。不经意间就想着先通过一个引入把exception先定义出来。后面对应位置在throw。

但是这种行为对自己编码友好了,但是对于排错的人!相当于没有任何提示。还是要一行一行代码看。

所以我们一定要throw的时候,重新new 相应的exception。报错行数就是我们new excetion的行数!!!!

http://www.dtcms.com/a/318187.html

相关文章:

  • TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?
  • 使用Cursor创建iOS应用
  • Xcode 26 如何在创建的 App 包中添加特定的目录
  • 北大、蚂蚁三个维度解构高效隐私保护机器学习:前沿进展+发展方向
  • 安装Chocolatey一文通
  • IPS知识点
  • Ubuntu设置
  • 从零开始用 Eclipse 写第一个 Java 程序:HelloWorld 全流程 + 避坑指南
  • Vscode 解决 git插件Failed to connect to github.com port 443 connection timed out
  • prometheus+Grafana 监控中间件项目
  • ROG 掌机 X:便携游戏新宠,开启微观生存冒险
  • 部署Web UI自动化测试平台:SeleniumFlaskTester
  • 魔法客栈 v0.74(Magic Inn)免安装中文版,破木屋逆袭五星城堡
  • Pytorch-07 如何快速把已经有的视觉模型权重扒拉过来为己所用
  • X86-ubuntu22.04远程桌面只有1/4无法正常操作
  • Linux学习-4用户/权限
  • 防火墙(firewalld)
  • 数字农业气象站如何助力农田发展
  • 接口开发API 接入实战解析:京东商品实时数据赋能
  • 《算法导论》第 8 章—线性时间排序
  • NVIDIA Isaac GR00T N1.5 源码剖析与复现
  • TDengine 中 TDgp 常见问题
  • 微信小程序中使用TensorFlowJS从环境搭建到模型训练及推理模型得到预测结果
  • AI产品经理面试宝典第64天:2025年数据决策与用户隐私核心面试题指南
  • 卡车手机远程启动一键启动无钥匙进入有哪些好处
  • 【node.js】windows下如何更换node.js版本
  • STM32 C语言实现16进制与十进制整型互转(含自己编写测试可用的程序)
  • SpringBoot使用Hutool邮件工具MailUtil实现电子邮件发送功能(以网易邮箱为例)
  • 51c自动驾驶~合集13
  • 【自动驾驶】《Sparse4Dv3 Advancing End-to-End 3D Detection and Tracking》论文阅读笔记