verstehen den Unterschied zwischen throw
und neue Ausnahme ()
]
In der Ausnahmebehandlung gibt es signifikante Unterschiede in den Verwendung von
und . Lassen Sie uns in ihre jeweiligen Verhaltensweisen eintauchen:
: behalten Sie die Originalausnahmeinformation ]
Die
throw
catch Block verwendet wird, behält es die Typ-, Nachricht und Stapelspur der ursprünglichen Ausnahme bei. Dies ermöglicht die Ausnahme, sich weiter zu vermehren, ohne geändert zu werden.
versuchen { ... }
fangen {throw}
try { ... }
catch { throw }
in diesem Szenario eine Ausnahme auftritt. Catch blockiert die gleiche Ausnahme, wobei die ursprünglichen Informationen intakt sind.
werfen neue Ausnahmen aus ()
]
Andererseits
werfen neue Ausnahme (Nachricht) eine neue Ausnahmegemäßung und verwendet die angegebene Nachricht. Diese Aktion setzt die Stapelverfolgung zurück und löscht alle Trace -Informationen, die vor dem
Block aufgetreten sind.
versuchen{ ... }
Catch (Ausnahme E) {neue Ausnahme werfen (e.message)}
try{ ... }
catch(Exception e) {throw new Exception(e.message) }
, der catch eine neue Ausnahme mit der Nachricht der ursprünglichen Ausnahme, aber die Stapelspur startet von der
catch Block selbst.
vermeiden Sie
empfehlen, ex
catch Block nicht zu verwenden. Dies führt dazu, dass sich die ursprüngliche Ausnahme von Propagate ausbreitet, aber die Stapelspur wird zurückgesetzt. Dies erschwert das Debuggen der Quelle der Ausnahmen sehr schwierig.
erstellen Sie benutzerdefinierte Ausnahme
] In einigen Fällen kann es erforderlich sein, alle Ausnahmen in ein benutzerdefiniertes Ausnahmungsobjekt einzuwickeln, um zusätzliche Informationen bereitzustellen. Definieren Sie dazu eine neue Ausnahmeklasse, die von Ausnahme
geerbt wurde, einschließlich aller vier Ausnahmekonstruktoren. Optional können Sie einen zusätzlichen Konstruktor hinzufügen, der die ursprüngliche Ausnahme und zusätzliche Informationen akzeptiert. Wenn Sie eine benutzerdefinierte Ausnahme auswerfen, geben Sie die ursprüngliche Ausnahme als interne Ausnahmeparameter zur Erhaltung seiner Stapelspur und anderer Eigenschaften.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3