我有代碼在代碼中創建一個按鈕(UIButton),並將它指定爲子視圖...除了我正在調試我的代碼以記錄異常,所以我創建了一個名爲「Create Exception」的按鈕,按鈕處理程序真正簡單的代碼:當引發異常並在按鈕事件中處理時,應用程序在真實iPhone上退出?
try
{
object Q = null;
Q.ToString();
}
catch
{
//Log.Exception ("Test", ex);
}
顯然,這不會做,除了得到一個空引用異常,並抓住它..而忽略了這事......
在模擬器,一切都好和好...在一個真正的設備?是的,應用程序退出與空引用異常! WTF?
最新的MonoTouch作爲更新昨天的......
我擔心我的所有異常不會趕上並於Log.Exeception()的代碼路徑......這是我試圖測試在首位...
這是分配給按鈕的觸摸處理匿名函數..
-Chert
---更新,錯誤:
Date/Time: 2013-03-25 22:26:59.269 -0500 OS Version: iPhone OS 5.1.1 (9B206) Report Version: 104
Exception Type: EXC_CRASH (SIGSEGV) Exception Codes: 0x00000000, 0x00000000 Crashed Thread: 1
Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0: 0
TestApp 0x00b5a2d8 load_method (aot-runtime.c:2661) 1 TestApp 0x00b5ae86 mono_aot_get_method (aot-runtime.c:3097) 2 TestApp 0x00b346c0 mono_jit_compile_method_with_opt (mini.c:5089) 3 TestApp
0x00b34c3a mono_jit_runtime_invoke (mini.c:5639) 4 TestApp
0x00ba2b14 mono_runtime_invoke (object.c:2790) 5 TestApp
0x00ba136a mono_runtime_object_init (object.c:105) 6 TestApp
0x00bdfa30 mono_exception_from_name_domain (exception.c:70) 7
TestApp 0x00bdfd3e mono_get_exception_null_reference (exception.c:40) 8 TestApp 0x00b79944 mono_handle_exception_internal + 60 9 TestApp
0x00b7a22a mono_handle_exception (mini-exceptions.c:1894) 10 TestApp 0x00bab8f6 handle_signal_exception (exceptions-arm.c:559) 11 TestApp 0x00102794 MonoTouch_UIKit_UIControlEventProxy_Activated (UIControl.cs:30) 12 TestApp 0x009d9b14 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 192 13 TestApp 0x00b34f44 mono_jit_runtime_invoke (mini.c:5793) 14 TestApp 0x00ba2b14 mono_runtime_invoke (object.c:2790) 15 TestApp
0x00b2b6f0 native_to_managed_trampoline_MonoTouch_UIKit_UIControlEventProxy_Activated (:88) 16 CoreFoundation 0x355763f6 -[NSObject performSelector:withObject:withObject:] + 46 17 UIKit
0x3306be00 -[UIApplication sendAction:to:from:forEvent:] + 56 18 UIKit 0x3306bdbc -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 24 19 UIKit
0x3306bd9a -[UIControl sendAction:to:forEvent:] + 38 20 UIKit
0x3306bb0a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 486 21 UIKit 0x3306c442 -[UIControl touchesEnded:withEvent:] + 470 22 UIKit
0x3306a924 -[UIWindow _sendTouchesForEvent:] + 312 23 UIKit
0x3306a312 -[UIWindow sendEvent:] + 374 24 UIKit
0x3305068e -[UIApplication sendEvent:] + 350 25 UIKit
0x3304ff34 _UIApplicationHandleEvent + 5820
它不是「退出」。你的應用程序崩潰。真實的設備不等於模擬器。圖書館和建築是不同的。什麼是錯誤? – Raptor 2013-03-26 04:30:31
是的,我知道一個應用程序在崩潰時會退出 - 這不是一次正常關機。 I.E.終止應用程序...而且我也知道該設備不是模擬器......在我看來(如最初所述),它是一個空引用異常 - 就像我創建的,但它就像它沒有做try/catch塊! – 2013-03-26 05:08:53
它可能會在另一行代碼處崩潰。很遺憾地告訴你,你的崩潰日誌沒有顯示任何有用的東西。這就是爲什麼建議使用本機代碼,以便於調試 – Raptor 2013-03-26 05:17:18