PortablePrism.Portable by Andrii Chebukin

<PackageReference Include="PortablePrism.Portable" Version="1.0.1" />

 ExceptionExtensions

public static class ExceptionExtensions
Class that provides extension methods for the Exception class. These extension methods provide a mechanism for developers to get more easily to the root cause of an exception, especially in combination with DI-containers such as Unity.
public static Exception GetRootException(this Exception exception)

Looks at all the inner exceptions of the exception parameter to find the most likely root cause of the exception. This works by skipping all registered exception types.

public static bool IsFrameworkExceptionRegistered(Type frameworkExceptionType)

Determines whether the exception type is already registered using the RegisterFrameworkExceptionType method

public static void RegisterFrameworkExceptionType(Type frameworkExceptionType)

Register the type of an Exception that is thrown by the framework. The GetRootException method uses this list of Exception types to find out if something has gone wrong.