75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
|
using System;
|
||
|
|
||
|
namespace Godot.NativeInterop
|
||
|
{
|
||
|
internal static class ExceptionUtils
|
||
|
{
|
||
|
public static void PushError(string message)
|
||
|
{
|
||
|
GD.PushError(message);
|
||
|
}
|
||
|
|
||
|
private static void OnExceptionLoggerException(Exception loggerException, Exception exceptionToLog)
|
||
|
{
|
||
|
// This better not throw
|
||
|
PushError("Exception thrown when trying to log another exception...");
|
||
|
PushError("Exception:");
|
||
|
PushError(exceptionToLog.ToString());
|
||
|
PushError("Logger exception:");
|
||
|
PushError(loggerException.ToString());
|
||
|
}
|
||
|
|
||
|
public static void DebugPrintUnhandledException(Exception e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
// TODO Not implemented (debug_print_unhandled_exception)
|
||
|
GD.PushError(e.ToString());
|
||
|
}
|
||
|
catch (Exception unexpected)
|
||
|
{
|
||
|
OnExceptionLoggerException(unexpected, e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void DebugSendUnhandledExceptionError(Exception e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
// TODO Not implemented (debug_send_unhandled_exception_error)
|
||
|
GD.PushError(e.ToString());
|
||
|
}
|
||
|
catch (Exception unexpected)
|
||
|
{
|
||
|
OnExceptionLoggerException(unexpected, e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void DebugUnhandledException(Exception e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
// TODO Not implemented (debug_unhandled_exception)
|
||
|
GD.PushError(e.ToString());
|
||
|
}
|
||
|
catch (Exception unexpected)
|
||
|
{
|
||
|
OnExceptionLoggerException(unexpected, e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void PrintUnhandledException(Exception e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
// TODO Not implemented (print_unhandled_exception)
|
||
|
GD.PushError(e.ToString());
|
||
|
}
|
||
|
catch (Exception unexpected)
|
||
|
{
|
||
|
OnExceptionLoggerException(unexpected, e);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|