try catch的使用,永远应该放在你的控制范围之内,而不应该防范未知的错误。也就是说你很清楚知道这里是有可能”出错“的,而且你很清楚知道什么前提下会出错,你就是要故意利用报错信息来区分错误,后续的程序会解决所有的出错,让程序继续执行。如果让用户先发现你根本没预料到的错误,而不是你先发现错误,你是失职的。大多数情况下,try catch适用于两种场合:
1、浏览器原罪的场合:也就是兼容性场合,因为浏览器兼容性不是程序员能改正的,所以只能try catch:由于不同浏览器的报错提示是不一样的,根据捕获的浏览器的报错提示判断用户的浏览器,然后做出对应的措施,这时候使用try catch是巧妙的办法,如果用if就比较笨拙,因为if通常只能反馈真或假,不能直接反馈浏览器的报错内容。
2、考虑如下代码。window.a.b是非法的,再跟2对比就没有意义,这样非法的条件,在try catch中仍可以继续运行下去。但在if中window.a.b已经报错,整个页面都会坏掉。如果希望用if写,那么必须先判断window.a是否是合法的,window.a是合法的前提下再判断window.a.b是不是合法的,如果也是合法的,再判断window.a.b是否不等于2,这样是不是很蠢?这时就体现出try catch的妙处了,程序不但知道window.a.b !== 2是假的,而且直接可以知道究竟哪一步就已经是假的。再想象一下,有一个变量是json.a.b.c,其中的a/b/c都可能是存在的也可能是不存在的,全看具体情况,这时候你简单的写if (json.a.b.c === 2) {...}是不行的,因为json.a.b就可能已经是非法的,所以你如果用if,就要考虑a是不是非法的、a是合法前提下b是不是非法的,b是合法前提下c是不是非法的。但是json.a.b.c === 2在try中就可以直接写,也就是说,我不关心究竟a/b/c谁是非法的,我只关心json.a.b.c到底是不是等于2,不等于2或者任何一步出错,对我来讲没有区别,反正都是不等于2,我不关心哪步出错,而且程序不会坏掉。这是一种比较省心的写法。另外注意,try catch不能做真假判断,只能做非法判断。也就是说:try {1 === 2},虽然1===2是假,但是是合法的,catch不会捕捉到错误,也不会告诉你1 === 2到底是真是假。所以,写在try里的应该是json.a.b.c而不是json.a.b.c === 2。究竟是不是等于2,是后面的事,是if干的事。简单说,try catch用于捕捉报错,当你不关心哪一步错误,只关心有没有错,就用try catch。
try {最后,try catch在早期被各种语言的程序员滥用,try catch出现的场合被夸大了,事实上没那么多适用场合。如果你的几千行程序都没用到try catch也是很正常的,尤其是用了jquery。
JS try catch语句一般在什么情况下使用?是必须使用的吗
大多数情况下,try catch适用于两种场合:1、浏览器原罪的场合:也就是兼容性场合,因为浏览器兼容性不是程序员能改正的,所以只能try catch:由于不同浏览器的报错提示是不一样的,根据捕获的浏览器的报错提示判断用户的浏览器,然后做出对应的措施,这时候使用try catch是巧妙的办法,如果用if就比较笨...
js中try...catch什么时候用,怎么用,有错误就改正好了,干嘛还要用try...
而且try catch还可以更清楚地抛出错误 可以自己设置抛出错误的提示
1,JAVASCRIPT中的TRY,CATCH什么时候用? 2,FOR(;;)什么时候用? 3,JQ...
1 try\/catch是异常处理用的 比如说 某一段代码可能会出错 出错之后会影响后面代码的正常运行 就可以try一下 2 for 是循环语句 在需要多次重复某一步骤的时候用 比如要从1加到100.3 prototype.js和jquery是两个不同的js工具集(或者说js框架) js框架只是对原生JS常用的功能进行封装 在需要的时候就...
JS中Try...Catch和onerror有什么区别?
try...catch只针对特定代码发生错误而触发,onerror是无论什么时候发生错误都触发。
jstrycatch用法?
在catch块中,通常使用异常参数来获取有关异常的更多信息。使用try-catch语句的目的是为了处理程序中的错误情况,使程序更加健壮和可靠。不要仅仅为了控制流程而使用try-catch,而忽视异常的实际处理。当你使用Java 7或更高版本时,可以使用多异常捕获,即在同一个catch块中捕获多种类型的异常。这可以使...
js try catch用法?
JavaScript中的错误处理机制主要通过try-catch语句实现。其基本用法是将可能会引发错误的代码块放在try代码块中,当这些代码执行时如果遇到异常,程序会立即跳转到相应的catch块进行错误处理。下面是一个直观的示例:javascript try { \/\/ 这里是可能会抛出异常的代码 \/\/ 例如,除以零或者访问不存在的变量等 ...
JS的try..catch..finally一般什么情况下用?用该句时,catch能否省略掉?ca...
在JavaScript中,我们使用try…catch…finally语句来执行例外处理,即通过它来捕捉错误发生后导致的例外或者执行throw语句产生的例外。它的基本语法如下: try { \/\/ 此处是可能产生例外的语句 } catch(error) { \/\/ 此处是负责例外处理的语句 } finally { \/\/ 此处是出口语句 } 上述代码中,try块中的语句首先被执行。
js-try...catch
可以嵌套使用try语句,内部try语句没有catch子句则进入包裹try的catch子句。使用try语句处理JavaScript异常时,请参阅JavaScript指南以获取更多有关异常的信息。使用单个无条件catch子句时,任何异常都会被捕获并进入catch块。标识符e保存抛出声明指定的值,仅在catch块执行时存在。非标准的条件catch块非推荐在...
js中的try-catch-finally
即使try和catch中存在异常。这种情况下,异常仿佛没有发生,仿佛finally中的return语句覆盖了所有其他可能的返回值和异常处理。总的来说,try-catch-finally结构在JavaScript中起着关键的错误处理作用,确保了程序的稳定性和预期行为。理解其执行顺序和覆盖规则是编写健壮代码的重要一环。
前端try.catch有用吗
当然有用。JS执行的时候如果某一语句抛出了一个Error,那么接下来的代码都不会被执行,有了try catch可以对捕捉的Error进行处理,让接下来的代码可以继续执行。