Como escrever corretamente um UncaughtExceptionHandler personalizado no Xamarin.Android
Tudo o que quero alcançar é capturar exceções no meu aplicativo para que eu possa enviá-las para um servidor. Eu descobri que posso fazer isso escrevendo meu costumeUncaughtExceptionHandler base no código Android nativo em Java respondidoaqui no StackOverflow.
Este é meuCustomExceptionHandler classe:
public class CustomExceptionHandler : Thread.IUncaughtExceptionHandler
{
public IntPtr Handle { get; private set; }
public CustomExceptionHandler(Thread.IUncaughtExceptionHandler exceptionHandler)
{
Handle = exceptionHandler.Handle;
}
public void UncaughtException(Thread t, Throwable e)
{
// Submit exception details to a server
...
// Display error message for local debugging purposes
Debug.WriteLine(e);
}
public void Dispose()
{
throw new NotImplementedException();
}
}
Então eu usei essa classe para definir oDefaultUncaughtExceptionHandler no meuAtividade:
// Set the default exception handler to a custom one
Thread.DefaultUncaughtExceptionHandler = new CustomExceptionHandler(
Thread.DefaultUncaughtExceptionHandler);
Não sei o que há de errado com essa abordagem, ela foi criada, mas recebi umaInvalidCastException em tempo de execução.
Eu tenho o mesmoThread.IUncaughtExceptionHandler tipos de interface para o meuCustomExceptionHandler e aDefaultUncaughtExceptionHandler, mas por que estou recebendo esse erro? Por favor me esclareça. Obrigado.