Notification when an error happens during the virtual machine execution. More...
|readonly attribute boolean||fatal|
|Whether the error is fatal or not. |
|readonly attribute wstring||id|
|Error identifier. |
|readonly attribute wstring||message|
|Optional error message. |
Notification when an error happens during the virtual machine execution.
There are three kinds of runtime errors:
Fatal errors are indicated by the fatal parameter set to
true. In case of fatal errors, the virtual machine execution is always paused before calling this notification, and the notification handler is supposed either to immediately save the virtual machine state using IConsole::saveState or power it off using IConsole::powerDown. Resuming the execution can lead to unpredictable results.
Non-fatal errors and warnings are indicated by the fatal parameter set to
false. If the virtual machine is in the Paused state by the time the error notification is received, it means that the user can try to resume the machine execution after attempting to solve the problem that caused the error. In this case, the notification handler is supposed to show an appropriate message to the user (depending on the value of the id parameter) that offers several actions such as Retry, Save or Power Off. If the user wants to retry, the notification handler should continue the machine execution using the IConsole::resume call. If the machine execution is not Paused during this notification, then it means this notification is a warning (for example, about a fatal condition that can happen very soon); no immediate action is required from the user, the machine continues its normal execution.
Note that in either case the notification handler must not perform any action directly on a thread where this notification is called. Everything it is allowed to do is to post a message to another thread that will then talk to the user and take the corresponding action.
Currently, the following error identifiers are known:
|readonly attribute boolean IRuntimeErrorEvent::fatal|
Whether the error is fatal or not.
|readonly attribute wstring IRuntimeErrorEvent::id|
|readonly attribute wstring IRuntimeErrorEvent::message|
Optional error message.