2 eshine01081067 Eshine01081067 于 2013.12.16 17:56 提问

抛出异常时怎么定位到抛出异常的那一行代码?

问个比较低级的问题:就抛出异常的时候怎么能得到具体是哪一行代码抛出的?

4个回答

Eshine01081067
Eshine01081067   2013.12.19 15:16
已采纳

我还正想问怎么把自己的解决办法贴上来呢。我那个问题类似一般就可以用ex.StackTrace()显示问题和定位出问题的方法和行号,但是我的问题还有点特殊,用了这个方法并不能定位到哪一行,只是定位到了出问题的方法。因此StackTrace只是一般的方法

renzhen2010
renzhen2010   2013.12.16 18:26

c语言:用宏函数__LINE__;
C++/JAVA:如果是自定义异常,Thow MyException,在MyException类中包含行号,
catch到异常后输出。
至于,如何活得行号应该都有办法,C++同C语言使用__LINE__,java自己差下把。

Eshine01081067
Eshine01081067 嗯,佐证了一下,还是谢谢
4 年多之前 回复
chenyinle
chenyinle   2013.12.16 18:26

exception.getCause().toString()

Eshine01081067
Eshine01081067 大哥,C#没有啊
4 年多之前 回复
renzhen2010
renzhen2010 java?
4 年多之前 回复
zpzp0818
zpzp0818   2013.12.17 19:41

e.printStackTrace()

Eshine01081067
Eshine01081067 我试了试,没有这个函数,只有StackTrace()
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
显示Python异常抛出所在行
实例代码: try: code; except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info(); fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] print(exc_type, fname, exc_tb.tb_linen
XCode的 Stack Trace,调试时抛出异常,定位到某一行代码
在Xcode调试程序的时候,总是会出现不知道错误在什么地方的问题,很是捉急,现在又一个办法,可以具体定位到错误行的代码,试一下吧?超级好用 操作很简单: 1、在XCode界面中按cmd + 6快捷键,或者直接点击选项卡,跳到Breakpoint的tab 2、然后点击左下角的+号,增加一个Exception的断点,如下图所示。 3、接下来会出现一个“All Exception
确切定位c++代码中异常抛出位置的两个方法 (以VS2010调试为例)
有时候程序crash了,但是不能定位具体的exception在哪里throw的(因为可能函数调用很深,并且有很多try--catch),举个简单的例子: class Test { public: Test(int i) : m_i(i) {} void f() { cout throw new Test(6); } private: int m_i; }; void f
C++出现exception异常的位置如何定位?
<br /> <br />有人问过我,在windows系统,如果C++的new产生异常exception,怎么才能知道出错的位置。<br /> <br />最简单的 方法是用 _set_new_handler。<br /> <br />如果不是 new 产生的, 或者程序非法访问内存了。<br /> <br />经过试验,可以先用__try __except捕获它,<br />在处理函数里面输出callstack调用堆栈,以及exe、dll的名字、地址、范围等信息。<br />处理完了返回EXCEPTION
try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就
package com.github.jdk7; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, * finally 语句块也会执行,如果finally抛出异常,
抛出异常截图
抛出异常截图抛出异常截图抛出异常截图
什么时候要抛出异常? !
在编写代码的过程中,经常会遇到这样的选择,检查到一个不正常的情况,或者某个操作失败,或者检测到 某个异常,此后该怎么办?是抛出一个异常?还是放回一个表示操作失败的返回值? 前一段在北京和小汤他们谈起这个问题的时候,有了一些粗略的想法。这段时间在 Leo4Net 的开发中,一些 想法逐步清晰起来。 === abc === === 两种方式的不同 ===     × 返
手动控制抛出自定义异常demo
手动控制抛出自定义异常demo
关于程序Exception抛出异常和利用返回值去做判断的思考
首先大家在写程序过程中都会碰到程序发生异常,这个时候你会选择利用一个return false; 还是thorw new Exception("error");呢? 让我们去看下jdk的源码中对于Exception用的频率 在java.io的包中我们去看下BufferedReader读取文件类中的readLine()方法 /** * Reads a line of text.
自定义异常的用法,抛出异常后,代码仍然继续执行。
//自定义异常 public class NoThisSoundException extends Exception{ private String i; public NoThisSoundException() { super(); } public NoThisSoundException(String i) { super(i); } } //抛出