Je veux attraper une exception dans un thread A, puis passer l'objet exception à un thread B, et le jeter du thread B. Est-ce sûr?Sûr de lancer une exception créée sur un autre thread C#
Discussion A
try {
// Code that throws exceptions
} catch (Exception e) {
sendToOtherThread(e);
}
Discussion B
Exception e = receiveException();
throw e;
EDIT
Par souci de clarté: Je comprends comment fonctionne le filetage, et comment je passerais la référence d'objet d'un fil à l'autre. La question est plus à propos est-il sûr de jeter un objet d'exception d'un thread qui ne l'a pas créé ou y at-il un problème avec la classe Exception
lui-même ou la façon dont .NET le gère.
Oui mais (peut être) assez inutile parce que vous ne pouvez pas réémettre si vous écraserez stacktrace d'origine. Si ce n'est pas ce que vous voulez, vous devez envelopper l'exception et lancer la nouvelle. –
Je suis très curieux de votre implémentation de 'sendToOtherThread' et' receiveException'. –
Disons simplement que ces deux méthodes transmettent la référence de l'objet telle quelle. Donc e dans les deux threads se réfèrent au même objet. –