首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在IntelliJ中,当我触发一个异常时,我如何回过头来找出是哪一行抛出了它?

在IntelliJ中,当你触发一个异常时,你可以通过以下步骤来找出是哪一行抛出了它:

  1. 首先,确保你的项目已经在IntelliJ中打开,并且你正在使用调试模式运行代码。
  2. 当异常被触发时,程序会停止在抛出异常的位置。此时,你可以在IntelliJ的调试窗口中看到异常的详细信息。
  3. 在调试窗口中,你可以看到异常的堆栈跟踪信息。堆栈跟踪会显示异常被抛出的位置以及调用堆栈中的其他方法。
  4. 找到堆栈跟踪中最顶层的方法,这是抛出异常的地方。通常,堆栈跟踪中的第一行会显示抛出异常的类和方法名。
  5. 如果你想进一步查看异常抛出的具体行数,可以点击堆栈跟踪中的方法名。这将会跳转到相应的代码位置。

通过以上步骤,你可以在IntelliJ中找到抛出异常的具体位置。这样你就可以定位并修复代码中的问题。

请注意,以上答案是基于IntelliJ的常规操作。对于特定的编程语言和框架,可能会有一些特殊的调试技巧和工具。因此,在实际开发中,你可能需要根据具体情况进行调整和进一步学习。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IDEA Tips:Debug如何优雅地制造异常

只需要这样就可以了: throw new RuntimeException("didispace.com"); 但是,开发过程中有一些情况,我们需要测试程序对异常的处理逻辑是否正确,这个时候就需要我们程序运行时主动的抛出异常才会触发相关逻辑来验证正确性...这个时候,你如何去制造异常,来支持你的调试呢?...撸起袖子就是 为了抛出异常以验证事务是否能回滚,很多小伙伴这样干的: 直接在这个函数里手工抛出异常,很粗暴很直接,可以完成目标。...虽然这种方法单元测试作为一种场景可以的,但如果在复杂的业务过程这样做就不那么优雅了,因为你测试好还要删掉,如果忘记了,那就是直接写了个Bug。...优雅地异常 实际上IDEA提供了自由异常的功能,只需要在Debug的时候,右键前几天介绍的回退操作Reset Frame(https://blog.didispace.com/intellij-idea-tips

44660

网络研讨会视频:重构还是重写?聊聊 Java 代码臭味与重构技巧

从张博超的演示里可以看到,程序员需要练习感知代码臭味的能力,加上对 IntelliJ IDEA 重构工具的熟悉,就可以让我们面对不同代码臭味,高效的完成重构工作。 ?...参数多的时候提取参数对象,导致方法的 get 方法超过,是因为没有重构完吗? 这背后隐藏的问题可能有很多的数据簇,通过这些组合出一个很大的概念。...如何优雅的处理异常,可靠性和优雅可读之间寻求平衡? 大家会觉得异常不好设计,有可能是因为外面调用这个函数的调用方式不合理。...把握这个原则,才不会让代码里到都在异常、也不会到处都在处理异常。 Q. 如果想将一个成熟的程序移植到其他平台,那么老师改怎么做才可以改动最少? 这其实已经不是一个重构的问题了。...的建议写代码,我们可以通过业务封装,让代码分层,中间层的这些代码应职责明确(概念上听起来与微服务有点类似,但不一定要用微服务才能做到分层)。

71610
  • Python 自动化指南(繁琐工作自动化)第二版:十一、调试

    其次,您将了解如何使用调试器。调试器 Mu 的一个特性,一次执行一条程序指令,让您有机会在代码运行时检查变量的值,并跟踪这些值程序过程如何变化的。...第 3 章的,你读到了如何用try和except语句处理 Python 的异常,这样你的程序就可以从你预期的异常恢复。但是您也可以代码引发自己的异常。...如果你对程序执行到一半时heads的值感兴趣,当 1000 次硬币的 500 次完成,你可以print('Halfway done!')➋ 设置一个断点。...您不希望if语句上设置断点,因为if语句循环的每次迭代执行的。当您在if语句中的代码上设置断点,调试器只有执行进入if子句才会中断。 带有断点的那一旁边会有一个红点。...什么断点? Mu 如何在一代码上设置断点? 实践项目 为了练习,编写一个程序来完成以下任务。 调试硬币 下面的程序一个简单的硬币猜谜游戏。

    1.5K40

    如何利用好 IntelliJ IDEA 的调试功能辅助代码调试

    总结 欢迎来到Java学习路线专栏~如何利用好 IntelliJ IDEA 的调试功能辅助代码调试 ☆* o(≧▽≦)o *☆嗨~IT·陈寒 ✨博客主页:IT·陈寒的博客 该系列文章专栏:Java...❤️ 调试程序开发过程不可或缺的一部分,帮助开发人员识别和修复代码的错误。...无论你新手还是经验丰富的开发人员,都会面临各种各样的代码问题。这些问题可能包括逻辑错误、异常、性能问题等。调试一种找出和解决这些问题的有效方式。...调试的好处有很多: 诊断问题: 调试可以帮助你找出代码的问题,包括错误的变量值、异常抛出的位置等。...总结 软件开发,调试一个不可或缺的工具,可以帮助你找出和解决各种问题。IntelliJ IDEA 提供了一套强大的调试工具,可以帮助你更轻松地诊断和解决代码的错误。

    94610

    IDEA命令行缩短器助你解决此问题:Command line is too long. Shorten command line...

    痛定思痛后,决定写此专栏,来专门分享/记录使用IntelliJ IDEA过程遇到的那些奇葩问题和解决方案,以帮助你缩短日常排错时间,这么一思考好像还功德无量呢?。...---- 控制台首行路径 IDEA里,你每次启动一个main函数,控制台第一输出的“日志”称作为:控制台首行路径。...这一实在太长了,无法横向截图全部展示出来,因此复制出来放在文本编辑器查看: ?...咋舌吧:第一控制台“日志”竟然输出了超过2.6w个字符。从内容结构上来看,这是一个command命令:调用java.exe程序启动一个java进程的命令。...但是直到当我启动的这个Spring Boot应用时,弹出红色提示: ? 直接禁止了的running运行。提示内容中文释义为:运行“Application”出错:命令行太长。

    9.6K103

    掌握 IDEA 这 30 个 Debug 小技巧,开发、改Bug 速度快10倍

    大家好,一航!...模板方法等设计模式;调试的时候,需要知道,当前接口方法或者抽象方法的执行,到底走的哪一个具体的实现,用方法调试就能很方便的找到;如下示例; 接口Service有两个具体的实现:ServiceA和...ServiceB,分别实现了接口的method方法,调试的过程中就可以将断点打在接口的method方法上;当我Main方法实例化了ServiceB,断点就自动进入到ServiceB的method(...; 如下示例: for循环之后只有i2的倍数,才进入断点,可以Conditon填入i % 2 == 0; 0-10000的循环,当i等于5000的时候,进入断点,其他的时候忽略,可以Conditon...(){} 当咱希望执行table2Save()的时候,异常,让整个操作回滚,通常的做法会在代码中人为一个异常: throw new RuntimeException("异常了"); 这样做并没有什么错

    1K20

    java异常处理的返回值

    那么try-catch代码,返回值如何处理的呢?...3.如果加入注释2的代码,直接抛出异常无返回结果。  3.结果分析  第一种情况很好理解,代码走正常逻辑直接返回结果。 第三种情况也比较好理解,直接异常。...如果我们把代码放在intellij里面,x = 3这一会提示: The value 3 assigned to 'x' is never used less  如果我们intellij里面debug...,当代码运行到x = 3这一,堆栈信息如下:  当程序执行到catch代码快的return x 那一,首先是将x的一个副本保存在了方法栈帧的本地变量表,执行return之前必须执行finally...但是return将本地变量表中保存的x的那个副本拿出来放到栈顶返回,所以出ArithmeticException异常或其子类异常,返回值2。

    1.7K30

    掌握 IDEA 这 30 个 Debug 神技,开发、改Bug 效率快10倍

    Mute Breakpoints 停用所有的断点; Get Thread Dump 拿到当前线程的Dump,可以查看当前线程的状态; 筛选 调试小技巧 断点 断点的图标一个 圆形的红点,需要断点的代码行头点击...方法,调试的过程中就可以将断点打在接口的method方法上;当我Main方法实例化了ServiceB,断点就自动进入到ServiceB的method()方法了; 接口Service public...才会激活断点 临时断点 临时断点指只触发一次的断点,之后就自动取消了;一般用于特定的场合下需要确认值符合我们的预期,完了之后就不在需要了; 设置及演示过程如下: 设置方式: 第一步,设置断点 第二步...; 如下示例: for循环之后只有i2的倍数,才进入断点,可以Conditon填入i % 2 == 0; 0-10000的循环,当i等于5000的时候,进入断点,其他的时候忽略,可以Conditon...(){} 当咱希望执行table2Save()的时候,异常,让整个操作回滚,通常的做法会在代码中人为一个异常: throw new RuntimeException("异常了"); 这样做并没有什么错

    1K10

    Java开发如何正确踩坑

    接下来就打算试着写一些“坑”出来,来看看我们如何一不留神踩坑的,以及如何用正确的姿势跳出坑。...踩坑姿势:其实就是尽管你之前做了对象不为空的判断,但你并不能保证对象的值不为空,而且这时候去级联调用就会 NPE 。 手册关于 NPE 的描述: 防止 NPE 调用者的责任。...7. toArray() 集合转换数组 当我们需要把一个集合转换为数组,往往会调用 toArray() 方法,如果你用的无参的这个可以吗? ? 当然不可以啦!...18: 当你原始集合大小没有那么大,毫无疑问异常。 20-21:得到一个新的集合,我们往新集合增加一条数据。...先总结一下 写到这只是其中关于异常部分的一些坑吧,还有另外一些令人异常惊讶的“的天吶”的问题,由于篇幅太长了点,感觉不能再写下去了,过两天再接着写吧。 异常真的一个有意思的问题。

    60640

    面试系列之-JAVA异常梳理(JAVA基础)

    抛出异常分为显式和隐式两种,显式异常的主体应用程序,显式异常程序通过throw关键字手动抛出异常实例。...隐式异常主体JVM,指的是JVM运行过程碰到无法继续运行的异常,自动抛出异常,比如数组越界异常; 构造异常实例比较消耗资源。...构造异常实例,JVM需要生成该异常的栈轨迹,该操作会逐一访问当前线程的JAVA栈帧,并且记录下各种调试信息,包括栈帧指向的方法的名字,方法的类名,文件名,以及代码的哪一触发了该异常; JVM如何捕获异常的...编译生成的字节码,每个方法都附带一个异常表,异常表的每一个条目代表一个异常处理器,并且包含from指针,to指针,target指针,以及所捕获的异常类型。...target6,表示异常处理器从索引6的字节码开始; 当程序触发异常,JVM会从上到下遍历异常的所有条目,当触发异常的字节码索引值某个异常表条目的监控范围内,JVM会判断抛出的异常和该条目想捕获的异常是否匹配

    24040

    Intellij IDEA神器居然还有这些小技巧

    点击上方“Java团长”,选择“置顶公众号” 干货文章第一间送达! 概述 ---- Intellij IDEA真是越用越觉得强大,总是我们写代码的时候,不时给我们来个小惊喜。...出于对Intellij IDEA的喜爱,决定写一个与其相关的专栏或者系列,把一些好用的Intellij IDEA技巧分享给大家。...但是强烈建议你不要这么做,因为你可以Enter Presentation Mode模式下在IDEA里面做任何事情的。当然前提,你对IDEA足够熟练。...上面的代码,有5个地方用到了rabbitTemplate文本,如何批量修改呢?...点击Edit Variables按钮,界面修改Maximum count的值。 ? 最后点击find按钮,就可以找出catch里面没有处理异常的代码了。 ? 如果文章还行,请点一下赞哈。

    81820

    最好的IDEA debug长文?看完我佛了

    打断点最简单最直接的方式就是在你想设置断点的哪一代码的最左边窗栏鼠标左键单击一下,完成后能看到一个小红点,就表示断点设置成功啦,再点击一下就取消。...: 主动抛出异常 需求场景:你写了一个全局异常组件,现在想测试生效情况如何,那么时候你就需要主动抛出这种异常,一般的做法形如这样: // 自己程序内主动throw一个 throw new NullPointerException...异常断点Exception breakpoint 比较小众,但并不代表不重要。理解它比较小众,可能大多数同学不知道如何一个异常断点,因为它不是鼠标单击就能轻松搞定。...创建完成后,代码栏处不会有任何显示(没有红色小图标),直到它被激活才会出现红色小闪电 异常断点作用于全局:本例任何地方抛出了NullPointException都会激活此断点 断点参数 Notification...使用场景 知晓了异常断点的作用和触发条件,使用场景就有啦。比如当你的程序抛出了一个异常,但是一半会你并不知道哪行代码引起的,这个时候通过增加异常断点的方式可以实现迅速的问题定位。

    1.3K10

    Java 开发如何正确的踩坑

    接下来就打算试着写一些“坑”出来,来看看我们如何一不留神踩坑的,以及如何用正确的姿势跳出坑。...踩坑姿势:其实就是尽管你之前做了对象不为空的判断,但你并不能保证对象的值不为空,而且这时候去级联调用就会 NPE 。 手册关于 NPE 的描述: 防止 NPE 调用者的责任。...7. toArray() 集合转换数组 当我们需要把一个集合转换为数组,往往会调用 toArray() 方法,如果你用的无参的这个可以吗? ? 当然不可以啦!...18:当你原始集合大小没有那么大,毫无疑问异常。 20-21:得到一个新的集合,我们往新集合增加一条数据。...---- 先总结一下 写到这只是其中关于异常部分的一些坑吧,还有另外一些令人异常惊讶的“的天吶”的问题,由于篇幅太长了点,感觉不能再写下去了,过两天再接着写吧。 异常真的一个有意思的问题。

    1K20

    BUG前端的还是后端的

    当然不是说找出bug唯一的测试工作目标,但是如果能最大范围挖掘出问题,意味着测试行业已经入门。再往高阶测试的路上,就是要对发现的bug进行快速反馈和修复回归校验。今天分享的就是如何高效反馈。...当你发现一个页面数据展现为空,你及时的查看查询数据接口,如何发现数据返回为空,那么说明后端问题可能性大直接反馈给后端研发,如果数据返回正常,那么提交给前端,让前端辅助排查。...更厉害的测试,既能发现根因,同时又给出了解决方案。这样的测试往往研发很愿意合作。 前后端的BUG都有什么特点呢?...很多情况就是用户所用的操作系统、端、端的版本各不相同,而产品没有做好兼容性引起,"的正常,你的不正常"的情况出现,搜集用户反馈的端情况,然后做复现,然后再进一步反馈给前端工程师来排查,排查思路就是查看前端错和后端接口来定位...如果接口返回了错误码,直接去看日志,日志大概率直接定位哪个文件哪一的错,查看代码上下文就能大概判断出是什么问题。如果通过日志没有发现,那就全局搜错误码,并通过接口名称大体判断错的问题。

    87020

    干掉Random:这个类已经成为获取随机数的王者

    我们的常识里,get 方法最容易异常的地方,比如空指针、类型转换等,但 Unsafe.getLong() 方法个非常安全的方法,它从某个内存位置开始读取四个字节,而不管这四个字节是什么内容,总能成功转成...可以从报错信息中看到虚拟机因为这个 fatal error abort 退出了,原因也很简单,使用 unsafe 将 Test 类 value 属性的位置设置成了 long 型值 2333,而当我使用...value 属性,虚拟机会将这一块内存解析为 String 对象,原 String 对象对象头的结构被打乱了,解析对象失败抛出了错误,更严重的问题报错信息没有类名行号等信息,复杂项目中排查这种问题真如同大海捞针...疑问 ---- 查找这些问题的过程也产生了两个疑问点。...我们知道,Java 对象的对象头放在 Java 对象的内存起始处的,而一个对象的 MarkWord 在对象头的起始处, 32 位系统占用 4 个字节,而在 64 位系统占用 8 个字节,使用的

    44920

    Java开发遇到的那些坑!

    接下来就打算试着写一些“坑”出来,来看看我们如何一不留神踩坑的,以及如何用正确的姿势跳出坑。...踩坑姿势:其实就是尽管你之前做了对象不为空的判断,但你并不能保证对象的值不为空,而且这时候去级联调用就会 NPE 。 手册关于 NPE 的描述: 防止 NPE 调用者的责任。...7. toArray() 集合转换数组 当我们需要把一个集合转换为数组,往往会调用 toArray() 方法,如果你用的无参的这个可以吗? ? 当然不可以啦!...18: 当你原始集合大小没有那么大,毫无疑问异常。 20-21:得到一个新的集合,我们往新集合增加一条数据。...先总结一下 写到这只是其中关于异常部分的一些坑吧,还有另外一些令人异常惊讶的“的天吶”的问题,由于篇幅太长了点,感觉不能再写下去了,过两天再接着写吧。 异常真的一个有意思的问题。

    1.1K10
    领券