2012-09-17 62 views

回答

1

例外情況不記錄本身。當你看到一個正在被記錄的異常時,這是因爲異常被一個通用的try-catch處理程序記錄下來。這種情況的發生時間比拋出異常的時間晚,並且此時堆棧已經展開,並且沒有關於拋出的位置的更多信息。

在任何堆棧展開或其他任何事情發生之前,斷點在引發異常時立即停止執行。您應該查看堆棧和堆棧跟蹤以找出異常情況以及拋出的位置和原因。

+0

我做了,沒有什麼。它打破了對[NSManagedObjectContext save]的調用。堆棧中最頂層的框架是objc_exception_throw。沒有任何信息拋出什麼異常。 –

+0

根據如何拋出異常,可能更容易找出它在早期幀中的位置。但是如果沒有辦法做到這一點,你仍然可以找到異常對象作爲objc_exception_throw本身的參數。但細節取決於您的系統。它將在其中一個寄存器中。它曾經在32位英特爾版本的'edx'和64位英特爾版本的'rax'中。不知道iPhone的東西,但它在那裏。它可能是一個寄存器,它的值是一個指針,而該地址處的'isa' ivar指向一個異常類。 –

+0

它是否有可能違反Core Data API引發和捕獲的異常,因此可以忽略它? –