Determinewhichlineofcodecausedtheexception在dotNet中,某行引发了异常并被捕获。如何确定哪个文件中的哪一行导致了异常?看起来比较简单,但我想不通......我只有在有调试符号可用的情况下才能这样做。catch(Exceptionex){//检查ex.StackTrace属性}如果你想在VS中调试这种情况,最好只检查“调试”菜单中“公共语言运行时异常”中的“公共语言运行时异常”“在异常对话框中”抛出复选框。一旦抛出异常,调试器就会中断,即使它在try块内。就个人而言,我只记录异常的ToString()返回值。包括整个堆栈跟踪。它是一行代码...非常简单。您可以使用StackFrame类:try{......}catch(...){StackFramesf=newStackFrame(true);intlineNumber=sf.GetFileLineNumber();intcolNumber=sf.GetFileColumnNumber();stringfileName=sf.GetFileName();stringmethodName=sf.GetMethod().Name;}那么,在.NET中你有所谓的FirstChanceException。这些基本上是在异常之前抛出的已处理。有两种方法可以查看您在此处提出的问题。一种是从调试角度。如果调试,您可以将调试器设置为从“调试/异常”窗口捕获抛出的异常。这在交互式环境中更容易。如果您需要在非交互式环境中记录它,那么我会做一些类似于CMS所说的事情......诊断。堆栈跟踪(例如);System.Diagnostics.StackFramefirstFrame=stackTrace.GetFrame[0];Console.WriteLine(firstFrame.GetFileLineNumber);...}这里唯一的区别是我们获得了整个堆栈跟踪,然后转到第一帧,这是最初抛出异常的地方。以上就是C#学习教程:判断是哪行代码导致了异常分享全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
