Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

optional way of automatic native exception wrapping

Ouverte
#31 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
android, cpp, javascript, typescript

Piste de recherche

Aucun fichier, test ou point d’entrée n’est indiqué. Commencez par localiser la gestion native des exceptions dans l’Android runtime et identifier comment les options d’exécution sont configurées. Le travail est terminé lorsqu’un comportement facultatif, désactivé par défaut, produit un JavaScript Error avec l’exception native et la stack trace lorsqu’une exception native atteint catch.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
C++
Étoiles
33
Forks
3
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NativeScript/napi-android

Toutes les issues de NativeScript/napi-android

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.