gpt4 book ai didi

.net - 需要异常号而不是消息字符串

转载 作者:行者123 更新时间:2023-12-03 07:51:07 25 4
gpt4 key购买 nike

我想知道异常是否是例如“内存溢出异常”。但是,如果操作系统上的语言不是英语,而是中文(例如)或德语,则消息会更改。而且我再也看不到消息字符串了。在MSDN上,我没有找到要使用的异常号。如何找到异常(exception)编号?

   Public Shared Sub Main()
Dim x As Integer = 0
Try
Dim y As Integer = 100 / x
Catch e As Exception'here, 123 is not working
if e is ArithmeticException(123) then Console.WriteLine("Generic Exception Handler: {0}", e.ToString())
End Try
End Sub

示例(请看<-行)
   Try
m_DxFilGraphManager.Run()
Catch ex As System.Runtime.InteropServices.COMException
If ex.Message.Contains("0x800705AA") Then '<-- Bad methode. How to do it better?
Return "#ERROR: Can not start capturing. It seems to be a possiblity to change the IEEE 1394 bus host controler system driver in your device manager to 'legacy / alt'. " & ex.Message
Else
Return "#ERROR: " & ex.Message
End If
End Try

最佳答案

通常,在.NET中(尽管除了约定外没有任何强制执行),每种原因都有一个从System.Exception派生的专用Exception-类型。因此,例如,您的“内存溢出”很可能由System.OutOfMemoryException发出信号。 checkout the System.Exception class hierarchy on MSDN以获取有关.NET框架中异常类型的更多信息。尽管您的代码和第3方组件始终可以定义自己的代码。

话虽如此,它们肯定是毛茸茸的情况,例如IOException。有时候,您几乎无法尝试解析错误消息-当然,这些消息可能已本地化。大多数情况下,您可以解决此问题。

通常,请确保仅捕获您实际感兴趣的异常类型。此外,您可能希望限制try块中的语句数量,以(而是)确保您对正确语句引发的异常使用react。

最后,粗粒度异常处理与细粒度异常处理同样不好。它始终取决于您的实际代码。

关于.net - 需要异常号而不是消息字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com