簡體   English   中英

如何在 addon.cc 中捕獲異常/錯誤(使用 Nan)

[英]How to catch exceptions/errors in addon.cc(using Nan)

在 addon.cc 中使用 Nan 從 NodeJS 調用 OpenSSL 層方法進行解密/簽名/驗證。

當嘗試在 OpenSSL 中從 NodeJS 一次又一次地點擊這些方法時 - 出現解密/驗證錯誤 - 如果這些錯誤被多次點擊,它會導致服務器崩潰。 如何在 addon.cc 中以某種方式捕獲導致服務器崩潰的錯誤/異常?

以下是我們在服務器崩潰期間看到的異常示例:

Error: 8668943040:error:21070073:PKCS7 routines:PKCS7_dataDecode:no recipient matches certificate:../deps/openssl/openssl/crypto/pkcs7/pk7_doit.c:491:
8668943040:error:21072077:PKCS7 routines:PKCS7_decrypt:decrypt error:../deps/openssl/openssl/crypto/pkcs7/pk7_smime.c:500:

Emitted 'error' event on TLSSocket instance at:
    at TLSSocket._emitTLSError (_tls_wrap.js:893:10)
    at TLSWrap.onerror (_tls_wrap.js:416:11) {
  library: 'PKCS7 routines',
  function: 'PKCS7_dataDecode',
  reason: 'no recipient matches certificate',
  code: 'ERR_SSL_NO_RECIPIENT_MATCHES_CERTIFICATE'
}

我們嘗試使用 Nan::try_catch 但它無助於捕獲異常。

這不是您可以捕獲的異常 - 它是 stream 處理程序中的error事件。 它檢測到故障並引發異常並在異步上下文中引發異常,因為您沒有安裝error處理程序。 這些異常是無法捕獲的,因為它們沒有封閉塊。

TLSSocket上注冊一個error處理程序 - 這個錯誤不是來自你的addon.cc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM