#async 関数がエラーをスローする可能性のあるコードがあり、それらのキャッチされない
throw は ## エラーをスローしないため、
unhandledrejection イベントを使用してそれらを処理しています。 #error
イベントは、Promise
内で発生するため発生します。したがって、私のエラーハンドラーは、ErrorEvent
ではなく PromiseRejectionEvent
を取得します。
これまでのところ、エラー処理は正常に動作しています。
ここで小さな問題があります。つまり、PromiseRejectionEvent イベントには、位置情報を配置する ErrorEvent
イベントとは異なり、位置情報がありません。エラーを発生させるコードです。中将は非常に役に立ちます。
コードで
関数が使用されておらず、ハンドラーが ErrorEvent
イベント、event.filename
、event.lineno## を取得する場合# と
event.colno が必要ですが、これらの cphpcn アクティビティは
PromiseRejectionEventphpcnend にありません。
SO
PromiseRejectionEvent をラップして再ディスパッチして、最終的に ErrorEvent が発生するようにする方法はありますか?位置情報 ?
私は次のようなことを試しました:
リーリー
ErrorEvent
と関連するエラー メッセージ を生成しますが、 すべての位置情報は役に立ちません (
0 は行と列を表し、'' はファイルを表します)名前)。
ところで、unhandledrejection イベント ハンドラーでスタック トレースを取得することを確認しましたが、現在、カスタム クラスを使用してコードで Promise をラップすることはできません。
###事前にどうもありがとうございました :)###
P粉8354286592024-02-18 10:48:20
###はい!ただし、
ErrorEvent を自分で構築してディスパッチするだけでは実現できません。代わりに、
reportError: を使用できます。