当我调试我的项目时,我遇到了一个运行时错误,调试器停止在主线上,而不是错误行上。
使用AppKit;
namespace Project {
static class MainClass {
static void Main(string[] args) {
NSApplication.Init();
NSApplication.Main(args); // breaks here
}
}
}
代替错误行:
if (isTrue) {
button.Title = "Title"; // Object reference not set to an instance of an object
}
有没有办法改变它,使它在有错误的行上中断?
x 1c 2d 1x我尝试了忽略选项:
但是,下次将取消选中该选项:
2条答案
按热度按时间xlpyo6sf1#
这对我在Visual Studio for Mac中起作用:
1.转到主菜单
View -> Debug Windows -> Breakpoints
1.单击
New Exception Catchpoint
按钮(或单击Breakpoint
而不是 * 捕捉点 )1.让选项保持原样,即:
a) 断点动作 * =
Pause the program
B)* 何时采取行动 * =
When an exception is thrown
(“系统异常”;包括子类=true
)1.单击
Create
按钮进行确认1.启动项目(主菜单
Run -> Start Debugging
或点击工具栏中的播放按钮),并享受捕捉错误的乐趣z18hc3ub2#
当然,最简单的方法(如果你知道你在寻找一个特定的错误)是在异常窗口(Debug-〉Windows-〉Exception settings-〉Common Language Exceptions)中启用(检查)相应的异常。由于NRE不是你在运行时所期望的,所以这对这些异常来说是很好的。
如果异常是未处理的并且在主线程上发生,那么您需要的通常是默认行为,如果异常发生在任务或异步方法中,那么事情确实有点糟糕,因为异常首先被 Package 到
AggregateException
中,然后在等待任务时将其抛出到主线程。当您遇到不希望的行为时,您在调用堆栈中的位置是否仍然正确?如果异常发生在不同的模块中,您可能还需要禁用“仅我的代码”。