EurekaLog automatically catches any unhandled exceptions in your application. However, you may want to force-handle exception coming from a specific code:
If this is the case - then you can use any of the following:
This code will show a usual error message box when EurekaLog is not enabled/active, but it will show full EurekaLog's dialog (with call stack, sending, etc.) when EurekaLog is enabled and active.
Note: use item 6 (ShowExpected) only if you want to consider current exception as "expected".
Important Note: If you are going to handle exception from another thread (for example, when you are analyzing .FatalException property of a background thread in the main thread) - be sure to use a function which allows you to specify exception object directly. For example, Application.HandleException function will try to use current exception, it does not know about your thread and its .FatalException property. It will not work properly for your purpose. On the other hand, Application.ShowException allows you to specify an exception object as the first argument. Thus, you may pass your MyThread.FatalException to it.
Important Note: If your exception was not raised yet - then EurekaLog will ignore it. If you want to force EurekaLog to handle such exception - see this article.
Use last example (Exception2HRESULT) only when you need to convert exception to HRESULT value to pass it between executable modules. E.g. when you are developing a DLL. See this article for an example.