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

View File

@@ -140,21 +140,37 @@ namespace Barotrauma
else if (exceptionType == ExceptionType.CSharp) PrintCsError(extra);
else PrintBothError(extra);
if (ex is InterpreterException)
if (ex is NetRuntimeException netRuntimeException)
{
if (((InterpreterException)ex).DecoratedMessage == null)
PrintError(((InterpreterException)ex).Message);
if (netRuntimeException.DecoratedMessage == null)
{
PrintError(netRuntimeException);
}
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
{
string msg = ex.StackTrace != null
? ex.ToString()
: $"{ex}\n{Environment.StackTrace}";
if (exceptionType == ExceptionType.Lua) PrintError(msg);
else if (exceptionType == ExceptionType.CSharp) PrintCsError(msg);
else PrintBothError(msg);
if (exceptionType == ExceptionType.Lua) { PrintError(msg); }
else if (exceptionType == ExceptionType.CSharp) { PrintCsError(msg); }
else { PrintBothError(msg); }
}
}
@@ -422,6 +438,8 @@ namespace Barotrauma
UserData.RegisterType<LuaUserData>();
UserData.RegisterType<IUserDataDescriptor>();
LuaDocs.GenerateDocsAll();
lua.Globals["printerror"] = (Action<object>)PrintError;
lua.Globals["setmodulepaths"] = (Action<string[]>)SetModulePaths;

Binary file not shown.