optional way of automatic native exception wrapping
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- android, cpp, javascript, typescript
- Domínio
- developer-experience, mobile-dev
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.
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
- Linguagem predominante
- C++
- Estrelas
- 33
- Forks
- 3
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
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.
Mais de NativeScript/napi-android
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
NativeScript/napi-android#37 · 7 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
NativeScript/napi-android#30 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 42/100
NativeScript/napi-android#28 ·
-
Handle regular JS Errors Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
NativeScript/napi-android#25 ·
-
Debug and fix memory leaks Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
NativeScript/napi-android#20 ·
Todas as issues de NativeScript/napi-android
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
google/libultrahdr#485 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
godotengine/godot#123776 ·
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 60/100
-
good first issue
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
ros2/common_interfaces#344 ·