dar*_*a33 4 javascript try-catch
介绍
在这个 jQuery(document).ready() 函数内部,在匿名函数内部,我抛出一个错误,该错误被第二个 catch 块捕获。然后我在该 catch 块内部抛出一个错误,并尝试在第一个 try catch 块外部捕获它。
问题。
尝试 {
// 绑定到就绪状态
jQuery(文档).ready(函数() {
尝试 {
throw Error("这可以在 jquery 回调之外捕获吗?");
_this.initialize();
} 捕获(e){
console.log(e.message + '被回调捕获');
throw Error(e.message + '没有被外面捕获');
}
});
} 捕获(e){
//永远不会被执行。
console.log(e.message);
}
的事件处理程序$(document).ready与注册它们的代码异步执行 - 如果页面仍在加载,则注册发生时。您function() { ... throw ... }在外部try/catch块之外执行。你所问的是不可能的。
@RickHitchcock 在https://jsfiddle.net/a3vttpk6/中观察到的行为的解释(请参阅问题的第一条评论)
如果在 Rick's fiddle 中单击 Javascript 设置按钮,您将看到“LOAD TYPE”设置为“onLoad”。这意味着该窗口中的整个 js 代码都包含在window.onload = function() { ... }. 这样做的结果是 - 立即执行处理程序$(document).ready,因为页面已经加载。如果您选择“不换行”设置 - 您将看到问题中描述的行为。
| 归档时间: |
|
| 查看次数: |
6561 次 |
| 最近记录: |