我有一個從另一個包匯入的包拋出的例外,我無權訪問該例外的建構式,但我知道這個例外可能有一個statusCode欄位。使用 typescript 4.4 的 useUnknownInCatchVariables 時如何安全地訪問此欄位?
uj5u.com熱心網友回復:
您可以定義自己的類來擴展Error該類,并statusCode為其添加一個欄位。然后在catch塊中,您可以檢查捕獲的錯誤是否是instance您的錯誤:
class PackageException extends Error {
statusCode: number = 0;
}
try {
// something
} catch (err) {
if (err instanceof PackageException) {
if (err.statusCode === 404) {
// handle not found error
} else if (err.statusCode === 403) {
// handle forbidden error
}
}
}
TS 游樂場鏈接
uj5u.com熱心網友回復:
內部 catch err 可以是任何型別
try {
// something
} catch (err: {statusCode: number}) {
if (err.statusCode === 404) {
// handle not found error
} else if (err.statusCode === 403) {
// handle forbidden error
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/403087.html
標籤:
上一篇:呼叫`.push`時陣列為空
