c#异常抛出和捕获

小污云姐姐 2015-09-19 12:16:51
请问我现有一个DLL,里面有一个方法TEST,当TEST执行出错的时候如何让异常定位到调用者的调用方法的位置而非TEST方法内呢?
像这样提示到调用者位置:

不是像这样提示到方法内部:
...全文
499 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-09-19
  • 打赏
  • 举报
回复
如果是非托管dll,你想跳也跳不到那儿去。 catch (Exception ex)可以在出错的时候看到错误类别,或具体导致错误的变量.
小污云姐姐 2015-09-19
  • 打赏
  • 举报
回复
大家好,问题已经解决,经过测试,如果在DLL的TEST方法中不写try-catch的话直接throw异常是可以正常提示到调用者的位置。如果在TEST方法写了try-catch再throw异常VS是会自动定位到TEST方法中,如果引用的DLL源码不在同一个解决方案会弹出下图:
小污云姐姐 2015-09-19
  • 打赏
  • 举报
回复
那如何才能让异常提示到调用者的位置呢?
小污云姐姐 2015-09-19
  • 打赏
  • 举报
回复
引用 4 楼 wddw1986 的回复:
你这个需求好怪,正常人都是希望可以尽量靠近出问题的地方。如果你想看调用的上层方法,断下来之后直接看堆栈不就可以了。
其实我是想实现类似系统DLL调用异常提示的那样,显示到调用位置,而不是显示到DLL的方法执行位置。 因为我在实际测试的时候提供给开发人员DLL,他们在调用的时候方法执行错误VS就会弹出一个保存框(提示保存我的方法类),无法在调用的位置提示我方法里throw的异常。
Poopaye 2015-09-19
  • 打赏
  • 举报
回复
菜单->调试->异常->引发那列全勾上
cheng2005 2015-09-19
  • 打赏
  • 举报
回复
你这个需求好怪,正常人都是希望可以尽量靠近出问题的地方。如果你想看调用的上层方法,断下来之后直接看堆栈不就可以了。
phommy 2015-09-19
  • 打赏
  • 举报
回复
ctrl+alt+e,只在未捕获的托管代码异常中断

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧