对Unity3d C#产生的异常进行人工处理

System.AppDomain.CurrentDomain.UnhandledException += new System.UnhandledExceptionEventHandler(_OnUnresolvedExceptionHandler);

Application.RegisterLogCallback(_OnDebugLogCallbackHandler);//接手处理Log,在回调方法_OnDebugLogCallbackHandler中进行人工处理

借用Crittercism中的回调代码示例:        

static private void _OnDebugLogCallbackHandler(string name, string stack, LogType type)
{
#if (UNITY_ANDROID && !UNITY_EDITOR) || FORCE_DEBUG
if(LogType.Assert != type && LogType.Exception != type) { return; }
if(mCrittercismsPlugin == null || _IsPluginInited == false) { return; }

try
{
mCrittercismsPlugin.CallStatic("LogUnhandledException", name, name, stack);

}catch(System.Exception e) { CLog(e.Message); }
#endif
}


ps.可以在回调方法中,讲log信息写到文件中,或者发送到后台哦~~

你可能感兴趣的:(c#,unity,android)