; side [saɪd] 一边;一侧; reference [ˈrefrəns] 谈及; 涉及; range [reɪndʒ] 范围;界限;区间; 类; 种; token [ˈtəʊkən] 令牌...;标记 try [traɪ] 尝试 throw [θrəʊ] 投;掷;抛;扔;摔;丢;猛推;使劲撞 Uncaught 未捕获 unexpected [ˌʌnɪkˈspektɪd] 出乎意料的;始料不及的...2、出现SyntaxError(语法错误),不会被抛出。...哪怕你有return,我也会执行! console.log("不管有没有异常,我都会执行。哪怕你有return,我也会执行!") } console.log("我还会继续运行哦!!")...•无法提前预知错误类型的错误,必须用try catch捕获。•finally可以省略。
一、什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 ?...Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...s1 = 'hello' try: int(s1) except IndexError as e: # 未捕获到异常,程序直接报错 print(e) 2.多分支 s1 = 'hello...ValueError as e: print(e) #except Exception as e: # print(e) else: print('try内代码块没有异常则执行我'...都会执行该模块,通常是进行清理工作') 四、try...except总结 把错误处理和真正的工作分开来 代码更易组织,更清晰,复杂的工作任务更容易实现; 毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了
是什么?最后会输出 '活下去'是不是很意外,是不是很惊喜。竟然是这个结果。这的是我们都没有想到对吧?子所以这这个结果:因为:obj这个对象中有 toJSON()方法。...那你就错了,它有很多我们之前可能没有了解的地方。...我们接着往下看,看看还有什么什么黑魔法无法序列化错误对象,错误对象将会被转为为空对象// 创建了一个错误对象const err = new Error('错的不是我,而是这个世道。')...Uncaught SyntaxError 未捕获的语法错误3.JSON 可以将任何标准合法的 JSON 数据格式化保存,不只是数组和对象。...: Unexpected end of JSON input at JSON.parse ()Uncaught SyntaxError 未捕获的语法错误因为:使用JSON.parse
# 翻译:语法错误:无效的语法(冒号加错地方了)踩坑场景 3:关键字拼写错误Python 有 35 个关键字(比如 if、for、while、def、class),拼写错了会报 SyntaxError。...踩坑场景 1:不同类型的数据做运算# 坑 1:字符串和数字相加age = 20message = "我的年龄是:" + age # "我的年龄是:"是字符串,age是整数# 坑 2:列表和整数相乘(列表只能和整数相乘...:如果不确定除数是否会为 0,用异常捕获避免程序崩溃:total_score = 300student_count = 0try: average = total_score / student_countexcept...:不确定键是否存在时,捕获 KeyError 避免程序崩溃,比如:try: print(user["age"])except KeyError: print("age 键不存在")实际开发中优先用...面试题 3:递归函数为什么会报 RecursionError?怎么解决?
下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 尝试访问一个没有申明的变量 SyntaxError...Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量...ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象 RuntimeError 一般的运行时错误 NotImplementedError 尚未实现的方法 SyntaxError...raise Exception("我自己抛的") except Exception as e: print(e)#这里会输出“我自己抛的” 4.自定义异常类型 异常的类型我们可以自己定义自己所需要的
有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理....f.close() 异常类只能用来处理指定的异常情况,如果非指定异常则无法处理 s1 = 'hello' try: int(s1) except IndexError as e: # 未捕获到异常...1 assert 1 == 2 总结try.except # 把错误处理和真正的工作分开来 # 代码更易组织,更清晰,复杂的工作任务更容易实现 # 毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了...什么时候用异常处理 有的同学会这么想,学完了异常处理后,好强大,我要为我的每一段程序都加上try…except,干毛线去思考它会不会有逻辑错误啊,这样就很好啊,多省脑细胞===》2B青年欢乐多...单元测试通过后有什么意义呢?
1 3.SyntaxError 语法错误 这是我们遇到的最常见的错误。 当我们键入JS引擎可以理解的代码时,会发生此错误。 解析期间,JS引擎捕获了此错误。...接下来,生成的令牌流将传递到解析阶段,由解析器处理。 这是从令牌流生成AST的地方。 AST是我们代码结构的抽象表示。...在这两个阶段,即标记化和解析,如果我们代码的语法/源不符合JS的语法规则,则会使阶段失败并引发SyntaxError。...例如, const log = console.log let cat h = "cat" 单独的h代表什么? 那里的h破坏了代码。...根据EcmaSpec 2018版: 此规范当前未使用此异常。 保留该对象是为了与本规范的先前版本兼容。
步骤 1 看一个例子 Customer cst = null; cst.eat(); 我声明了一个Customer变量,但是,没有实例化就调用它的方法,会发生什么呢? ?...image 报错了,其实这个不叫错误,虽然我们口头会说报错了,但其实这个是jdk帮我们抛出了空指针异常。 NullPointerException 是什么?...这个抛异常的行为是jdk帮忙做的,异常的好处就是告诉我们代码哪错了? 步骤 2 怎么自己观测空指针异常? 上个步骤,空指针异常的抛出不是我们做的,是jdk做的。那么,我们自己怎么控制这个异常呢?...步骤 3 异常是向下兼容的 假如代码很长,我也不确定到底有什么异常,就可以用所有异常的父类 -- Exception,这是最赖皮和偷懒的做法,但是很多开发人员都喜欢这么做。...cst.eat(); }catch (Exception e){ throw new NullPointerException("客户对象未实例化
Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...# 未捕获到异常,程序直接报错 s1 = 'hello' try: int(s1) except IndexError as e: print e part3:多分支 s1 = 'hello...as e: print(e) except ValueError as e: print(e) part4:万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常...减少了代码,增强了可读性 使用try..except的方式 1:把错误处理和真正的工作分开来 2:代码更易组织,更清晰,复杂的工作任务更容易实现; 3:毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了...; 什么时候用异常处理 有的同学会这么想,学完了异常处理后,好强大,我要为我的每一段程序都加上try...except,干毛线去思考它会不会有逻辑错误啊,这样就很好啊,多省脑细胞===》2B青年欢乐多
try块包含我们需要检查的代码 关键字throw用于抛出自定义错误 catch块处理捕获的错误 finally 块是最终结果无论如何,都会执行的一个块,可以在这个块里面做一些需要善后的事情 1.1 try...JS 代码,例如try块中的以下代码在语法上是错误的,但它不会被catch块捕获。...noSuchVariable; // undefined variable }, 1000); } catch (err) { console.log("这里不会被执行"); } 未捕获的...block: ➤ ⓧ Error while executing the code 1.3 try..finally 不建议仅使用 try..finally 而没有 catch 块,看看下面会发生什么...Error: Error while executing the code 这里注意两件事: 即使从try块抛出错误后,也会执行finally块 如果没有catch块,错误将不能被优雅地处理,从而导致未捕获的错误
Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...提示:g是基于文件句柄f而存在的,因而只能在next(g)抛出异常StopIteration后才可以执行f.close() ''' 读文件例2 **part2:异常类只能用来处理指定的异常情况. # 未捕获到异常...他可以捕获任意异常,即: s1 = 'hello' try: int(s1) except Exception as e: print(e) 你可能会说既然有万能异常,那么我直接用上面的这种形式就好了...减少了代码,增强了可读性 使用try..except的方式 1:把错误处理和真正的工作分开来 2:代码更易组织,更清晰,复杂的工作任务更容易实现; 3:毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了...; 什么时候用异常处理 有的同学会这么想,学完了异常处理后,好强大,我要为我的每一段程序都加上try...except,干毛线去思考它会不会有逻辑错误啊,这样就很好啊,多省脑细胞===》2B青年欢乐多
只要代码中包含 finally 子句,则无论 try 或 catch 语句中包含什么代码——甚至是 return 语句,都不会阻止 finally 子句执行。...接下来让我具体分析几种异常场景及其处理方案。 四、异常分析 1. JS 代码错误 下面为我司内部错误监控平台一次日常报错的调用堆栈截图: 错误还是比较明显的,this 指向导致的问题。...TypeError 类型在 JavaScript 中会经常遇到,在变量中保存着意外类型时,或者在访问不存在的方法时,都会导致这种错误。...: Invalid or unexpected token SyntaxError 语法错误我们无法通过 try-catch 捕获到,不过语法错误在我们开发阶段就可以看到,应该不会顺利上到线上环境。...,就需要跳转到登录页,让用户进行重新登录,但如果每个请求方法都需要写一遍跳转登录页的逻辑就很麻烦了,这时候就会考虑使用 axios 的拦截器来做统一梳理,同理能统一处理的异常也可以在放在拦截器里处理。
#Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError #传入对象类型与要求的不符合 UnboundLocalError #试图访问一个还未被设置的局部变量...#我们平时用if做的一些简单的异常处理 num1=input('>>: ') #输入一个字符串试试 if num1.isdigit(): int(num1) #我们的正统程序放到了这里,其余的都属于异常处理范畴...elif num1.isspace(): print('输入的是空格,就执行我这里的逻辑') elif len(num1) == 0: print('输入的是空,就执行我这里的逻辑')...python特定的语法结构捕获异常 #异常捕获 单个分支 try: 逻辑代码(被捕获得内容) except 异常类型: 检测到异常,就执行这个位置的逻辑 # 多个分支捕获 #...单分支只能用来处理指定的异常情况,如果未捕获到异常,则报错 try: abc() except ValueError: print('异常输出') except IndexError:
1)是真真正正地想对可能发生错误的代码进行异常捕获; 2)我想保证后面的代码继续运行。...第一行语句报错了,第二行语句的log也就没打印出来。...特定的错误信息,比如错误所在的生命周期钩子 // 只在 2.2.0+ 可用 } 复制代码 指定组件的渲染和观察期间未捕获错误的处理函数。...8) http请求异常 1.用法 以axios为例,添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么...我在这里先抛出几个问题,大家先做短暂的思考: 1.若事件处理和异步代码的错误导致页面crash,我们该如何预防? 2.如何对ErrorBounary进行兜底?
上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。 什么是编程中的错误 我们的开发过程中并不总是一帆风顺。...JavaScript 中的错误是什么 JavaScript中的错误是一个对象。...SyntaxError 错误一般是关键字打错了,如下所示: va x = '33'; // SyntaxError: Unexpected identifier 或者,当在错误的地方使关键字时,例如await...大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。 当我们抛出异常时会发生什么? 异常就像一个上升的电梯:一旦你抛出一个,它就会在程序堆栈中冒泡,除非它在某个地方被捕获。...如果异常未被捕获,也就是说,程序员不采取任何措施来捕获它,程序将崩溃。 何时何地捕获代码中的异常取决于特定的用例。 例如,我们可能想在堆栈中传递一个异常,以使程序完全崩溃。
今天分享一下我对Python异常的理解,希望能对大家有所启发。 首先需要知道什么是异常?“异”就是不同,有区别,不太一样等的意思,“常”就是正常,平常,所以“异常”可以理解为和正常情况有所区别的东西!...举个简单的栗子,比如我们登录某个网站的时候,需要输入用户名和密码,对吧,如果用户名或者密码输错了,一般会提示“用户名或密码错误,请重新输入”,有时候还会有一句“忘记密码?”。...在Python中,“系统判断”的这个行为被称为异常捕获(好像猎人捕获了猎物…)。输出的信息就是捕获异常之后输出的用来指出发生了什么样的错误。下面把Python中捕获异常的六种方法总结一下。 1....说到这里我还行在提一下,“”,这个是什么意思?这个问题留给各位看官啦,下次会解释。...为什么需要关闭文件?因为我们这个文件之后两行汉字,而如果文件特别大,打开之后未关闭,有可能就会造成内存不足而卡死!
下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象的变量 SyntaxError...Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...: pass 疑问:既然有了万能异常,那么我们还需要单异常捕获或者多异常捕获吗?...如果所有异常都用万能异常捕获,虽然避免了程序抛出难看的异常,但是也无法帮助我们解决问题,常用思路是对于特殊的异常我们单独做异常报错,其他可以忽略的异常用万能异常处理。...self.message = msg def __str__(self): return self.message try: raise MyException('我的异常
Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量...映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量...') elif len(num1) == 0: print('输入的是空,就执行我这里的逻辑') else: print('其他情情况,执行我这里的逻辑') #第二段代码 # num2...# 未捕获到异常,程序直接报错 s1 = 'hello' try: int(s1) except IndexError as e: print e ?...>>:gg invalid literal for int() with base 10: 'gg' 万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常 s1 =