Hi,
check() is designed to be fatal. A check() failure means that the engine has found itself in an unexpected state and the only reasonable course of action is to report an error and terminate the program. It is not reasonable to handle these exceptions and continue executing.
If this is for handling check()s in own code, perhaps you could consider using ensure(), which reports an error but allows you to test the result and handle it appropriately:
void Func()
{
UObject* Result = StartDoingSomeStuff();
if (!ensure(Result != null))
{
UE_LOG(MyLog, Error, TEXT("Unexpected null pointer passed to Func"));
RevertStuff();
return;
}
Ptr->FinishStuff();
}
Hope this helps,
Steve