簡體   English   中英

如何在“try ... catch”塊中拋出一個未處理的異常?

[英]How can code in a “try…catch” block throw an unhandled exception?

我今天在一些代碼中有一個例外:“[某些例外]未得到處理。”

但是,這段代碼顯然位於“try / catch”結構的“try”塊中。

我在這里錯過了什么?

更新:這是C#

更新:哦,忘了。 事實證明,錯誤的具體機制是我是個白痴。 對此沒有任何解決方法。

catch語句是否指定了特定類型的異常?

如果是,它將只捕獲該類型的異常。

catch(異常e)不會捕獲非托管異常,你可以試試

    try
    {
    }
    catch
    {
    }

代替

        try
        {
        }
        catch (Exception e)
        {
        }

由遞歸引起的一些問題,例如StackOverFlow異常等會拋出try ... catch塊,因為它們實際上並不是從塊內的任何特定代碼行拋出,而是由CLR拋出。 對於內存超出范圍的異常和其他不是任何一行代碼直接導致的問題,情況也是如此。

也許你在談論這樣的事情:

替代文字

你是否在調試器中運行“異常中斷”/“拋出中斷”? 在這種情況下,您將在傳遞給try / catch之前看到異常。

我有10美元說它是一個ThreadAbortException或其他一些自我拋出的異常。 如果是這種情況,您必須捕獲兩次異常。

在不知道語言的情況下很難說,但許多語言都有無法捕獲的異常概念 - 例如在.NET中,無法捕獲OutOfMemoryException和ExecutionEngineException(以及其他語言),因為它們基本上是不可恢復的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM