Javascript catch语句中是否有逻辑代码if-else语句?
我不确定这是对还是错,但我内心深处的某种东西告诉我,在catch stm上使用逻辑代码是错误的。 对于ex,我的捕获看起来像这样:Javascript catch语句中是否有逻辑代码if-else语句?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我不确定这是对还是错,但我内心深处的某种东西告诉我,在catch stm上使用逻辑代码是错误的。 对于ex,我的捕获看起来像这样: try{ // do some stuff that throws some unexpected errors } catch (error) { if (error?.graphQLErrors[0]) { let msg = error.graphQLErrors[0].me
try{
// do some stuff that throws some unexpected errors
}
catch (error) {
if (error?.graphQLErrors[0]) {
let msg = error.graphQLErrors[0].message
switch (msg) {
case 'limited':
// TODO:: handle
default:
window.location.href = "www.someurl.com";
}
}
主要是我认为catch stm通常应该保持简短和干净,没有可能导致另一个错误或异常的逻辑,如果catch中的代码抛出一些错误会发生什么?如果逻辑是为了处理或报告错误而存在的,那么在
catch
块中有逻辑就可以了。这就是catch
块的用途
如果catch中的代码抛出一些错误,会发生什么
这是一个新的错误。如果您没有捕获它,它将传播到调用方,等等
例如:
函数示例(){
试一试{
//“x”没有“foo”方法,因此会导致错误:
“x”.foo();
}捕获(e){
log(`captured error in\`example\`:${e.message}`);
//“y”没有“bar”方法,因此会导致错误:
y.bar();
}
}
函数包装器(){
试一试{
示例();
}捕获(e){
log(`captured error in\`wrapper\`:${e.message}`);
}
}
包装器()代码>在catch
块中有逻辑就可以了,如果有逻辑是为了处理或报告错误的话。这就是catch
块的用途
如果catch中的代码抛出一些错误,会发生什么
这是一个新的错误。如果您没有捕获它,它将传播到调用方,等等
例如:
函数示例(){
试一试{
//“x”没有“foo”方法,因此会导致错误:
“x”.foo();
}捕获(e){
log(`captured error in\`example\`:${e.message}`);
//“y”没有“bar”方法,因此会导致错误:
y.bar();
}
}
函数包装器(){
试一试{
示例();
}捕获(e){
log(`captured error in\`wrapper\`:${e.message}`);
}
}
包装器()代码>
catch语句中是否有逻辑代码if-else语句
对
如果catch中的代码抛出一些错误,会发生什么
错误将传播到下一个try-catch块
catch语句中是否有逻辑代码if-else语句
对
如果catch中的代码抛出一些错误,会发生什么
错误将传播到下一个try-catch块。“如果catch中的代码抛出一些错误,会发生什么情况?”好的,您将得到一个错误。但是你的代码对我来说真的很好。logc是否正确(如果无法处理,则重定向)是另一回事。然后它将转到下一个更高的try/catch。如果没有上层catch,您可能希望防止catch块中出现错误这里没有问题“如果catch中的代码抛出一些错误会发生什么”嗯,您会得到一个错误。但是你的代码对我来说真的很好。logc是否正确(如果无法处理,则重定向)是另一回事。然后它将转到下一个更高的try/catch。如果没有上限捕获,您可能希望防止捕获块中出现错误。此处没有任何错误。为什么发布的答案只说明已发布的答案所说的内容,但不完整?为什么发布的答案只说明已发布的答案所说的内容,但不完整?