NativeScript / NativeScript/napi-android
optional way of automatic native exception wrapping
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C++
- Estrelas
- 33
- Forks
- 3
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Right now in the runtimes when a native exception is thrown which you catch with a try/catch it is the native exception object that you get.
So in my apps/N fork i use something like this:
export function wrapNativeException<T = any>(ex: NSError, wrapError: (...args) => T = (msg) => new Error(msg) as any) {
if (!ex) {
return;
}
if (typeof ex === 'string') {
return wrapError(ex);
}
if (!(ex instanceof Error)) {
const err = wrapError(ex.toString());
err['nativeException'] = ex;
//@ts-ignore
err['stackTrace'] = com.tns.NativeScriptException.getStackTraceAsString(ex);
return err;
}
return ex;
}
That method wraps the native exception in a JS error with stackTrace.
Would be pretty awesome to have that done automatically so that the error object you get in catch is an actual JS Error.
I think for now if we can do it it should be optional and disabled by default
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Nenhum arquivo, teste ou ponto de entrada é indicado. Comece localizando o tratamento nativo de exceções no Android runtime e identificando como as opções de runtime são configuradas. O trabalho estará concluído quando um comportamento opcional, desabilitado por padrão, produzir um JavaScript Error com a exceção nativa e o stack trace quando uma exceção nativa chegar a catch.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- android, cpp, javascript, typescript
- Domínio
- developer-experience, mobile-dev
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100