[英]Deno: How to handle exceptions
在 nodejs 中,我們可以處理這樣的異常:
process.on('uncaughtException', (err, origin) => {
fs.writeSync(
process.stderr.fd,
`Caught exception: ${err}\n` +
`Exception origin: ${origin}`
);
});
setTimeout(() => {
console.log('This will still run.');
}, 500);
// Intentionally cause an exception, but don't catch it.
nonexistentFunc();
console.log('This will not run.');
deno 的替代方案是什么? 我知道有window.onunload ,但它不處理錯誤
Deno 總是死於未捕獲的異常,這是一個設計選擇(實際上是一個核心選擇)。 您不能為您的錯誤放置全局處理程序,因為有時您的異常可能是不可恢復的,並且可能會導致改變應用程序整體狀態的副作用,總而言之,未處理的異常處理程序意味着問題。 到目前為止,NodeJS 不鼓勵對異常進行全局處理,因此請不要在將來在該平台上依賴此類代碼。
話雖如此,如何處理拒絕? try
/ catch
/ finally
同步代碼。 .then
/ .catch
/ .finally
對於異步代碼。
編輯:您可以使用的一個有趣的資源是unhandledRejection
事件,它是一個用於實現各種清理的事件,意味着關閉打開的連接、釋放資源、關閉文件等。這不會阻止異常終止程序,但會給您空間以防止對程序終止產生二次影響。
https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.