Files
2024-02-26 19:00:48 +01:00

50 lines
1.3 KiB
C++

// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Types/String.h"
#include "Engine/Core/Log.h"
#include "MTypes.h"
/// <summary>
/// Represents errors that occur during script execution.
/// </summary>
class FLAXENGINE_API MException
{
public:
/// <summary>
/// Gets a message that describes the current exception.
/// </summary>
String Message;
/// <summary>
/// Gets a string representation of the immediate frames on the call stack.
/// </summary>
String StackTrace;
/// <summary>
/// Gets an inner exception. Null if not used.
/// </summary>
MException* InnerException;
public:
/// <summary>
/// Initializes a new instance of the <see cref="MException"/> class.
/// </summary>
/// <param name="exception">The exception object.</param>
explicit MException(MObject* exception);
/// <summary>
/// Disposes a instance of the <see cref="MException"/> class.
/// </summary>
~MException();
public:
/// <summary>
/// Sends exception to the log.
/// </summary>
/// <param name="type">The log message type.</param>
/// <param name="target">Execution target name.</param>
void Log(const LogType type, const Char* target);
};