|
176
|
| Stefan Steiger Marco van de Voort · 技术社区 · 15 年前 |
|
1
288
不,那是正确的方法。这正是它应该发挥的作用,你可以从以下方面着手:
请记住,您无法捕获由抖动以这种方式生成的类型和文件加载异常。它们发生在Main()方法开始运行之前。捕捉这些需要延迟抖动,将有风险的代码移到另一个方法中,并对其应用[MethodImpl(MethodImplOptions.noinline)]属性。 |
|
|
2
23
如果您有一个单线程应用程序,那么可以在Main函数中使用一个简单的try/catch,但是,这不包括可能在Main函数之外抛出的异常,例如在其他线程上抛出的异常(如其他注释中所述)。此代码演示了即使您尝试在Main中处理异常,异常如何导致应用程序终止(请注意,如果您在异常发生之前按enter键并允许应用程序正常退出,程序将如何正常退出,但如果您让它运行,它将非常不愉快地终止):
所以在我看来,最干净的处理方法 在控制台应用程序中
|
|
|
3
12
您还需要处理来自线程的异常:
喔,对不起,这是针对winforms的,对于您在控制台应用程序中使用的任何线程,您必须将其包含在try/catch块中。遇到未处理异常的后台线程不会导致应用程序结束。 |
|
|
4
1
我刚刚继承了一个旧的VB.NET控制台应用程序,需要设置一个全局异常处理程序。由于这个问题多次提到VB.NET,并用VB.NET标记,但这里的所有其他答案都是C#,因此我想我也应该为VB.NET应用程序添加确切的语法。
我用了
|
|
|
5
-13
您正在尝试的应该根据.NET2.0的MSDN文档工作。你也可以在主控台应用程序的入口点附近尝试try/catch。
在主线程中 ). 它可以是优雅的,甚至可以重新启动它,如果你想,或者你可以让应用程序死,并记录异常。如果你想做任何清理,你会加一个finally。 每个线程都需要自己的高级异常处理,类似于主线程。
|
|
|
Mear1628 · vb.net从随机选择的端口号接收UDP 1 年前 |
|
|
user1946932 · .Net正则表达式在所有字符前添加空格 1 年前 |
|
|
user1946932 · 正则表达式:删除连续两个以上的<br>? 1 年前 |
|
|
Josh · 通过反思访问孩子的财产 1 年前 |
|
|
Khu RJ · 更新网格中的单元格-DevExpress网格控件 1 年前 |
|
|
Mick · VB.NET Regex。替换不起作用(数组未更新) 1 年前 |