better error handling

This commit is contained in:
Evil Factory
2022-05-02 16:36:55 -03:00
parent 4b024d525f
commit 79daf2ed32
2 changed files with 25 additions and 7 deletions
@@ -140,21 +140,37 @@ namespace Barotrauma
else if (exceptionType == ExceptionType.CSharp) PrintCsError(extra); else if (exceptionType == ExceptionType.CSharp) PrintCsError(extra);
else PrintBothError(extra); else PrintBothError(extra);
if (ex is InterpreterException) if (ex is NetRuntimeException netRuntimeException)
{ {
if (((InterpreterException)ex).DecoratedMessage == null) if (netRuntimeException.DecoratedMessage == null)
PrintError(((InterpreterException)ex).Message); {
PrintError(netRuntimeException);
}
else else
PrintError(((InterpreterException)ex).DecoratedMessage); {
PrintError(netRuntimeException.DecoratedMessage + ": " + netRuntimeException.ToString());
}
}
else if (ex is InterpreterException interpreterException)
{
if (interpreterException.DecoratedMessage == null)
{
PrintError(interpreterException);
}
else
{
PrintError(interpreterException.DecoratedMessage);
}
} }
else else
{ {
string msg = ex.StackTrace != null string msg = ex.StackTrace != null
? ex.ToString() ? ex.ToString()
: $"{ex}\n{Environment.StackTrace}"; : $"{ex}\n{Environment.StackTrace}";
if (exceptionType == ExceptionType.Lua) PrintError(msg);
else if (exceptionType == ExceptionType.CSharp) PrintCsError(msg); if (exceptionType == ExceptionType.Lua) { PrintError(msg); }
else PrintBothError(msg); else if (exceptionType == ExceptionType.CSharp) { PrintCsError(msg); }
else { PrintBothError(msg); }
} }
} }
@@ -422,6 +438,8 @@ namespace Barotrauma
UserData.RegisterType<LuaUserData>(); UserData.RegisterType<LuaUserData>();
UserData.RegisterType<IUserDataDescriptor>(); UserData.RegisterType<IUserDataDescriptor>();
LuaDocs.GenerateDocsAll();
lua.Globals["printerror"] = (Action<object>)PrintError; lua.Globals["printerror"] = (Action<object>)PrintError;
lua.Globals["setmodulepaths"] = (Action<string[]>)SetModulePaths; lua.Globals["setmodulepaths"] = (Action<string[]>)SetModulePaths;
Binary file not shown.