首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python异常原理及异常捕捉实现过程解析

异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行随之终止),在python中,错误触发的异常如下: ?   ...错误被分为了两种:   1.语法错误,基本pycharm都会帮你显示出来,不该犯的   2.逻辑错误,不太容易看出来,pycharm不管,只有Python解释器是真爱,但是得等到真的运行的时候 #TypeError...SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量...,基本上是由于另有一个同名的全局变量, 导致你以为正在访问它 ValueError 传入一个调用者不期望的值,即使值的类型是正确的   更多异常(有空还是要挨个一遍): ArithmeticError...#5 可以在多分支后来一个Exception s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python 错误类型

Copy 在 Python 3.x 中,print 是一个内置函数,需要括号。上面的语句违反了这种用法,因此会显示语法错误。 但是很多时候,程序在运行后会导致错误,即使它没有任何语法错误。...欧费罗 当 input()函数达到文件结束条件时引发。 浮动指针错误 浮点运算失败时引发。 GeneratorExit 调用生成器的 close()方法时引发。 导入错误 找不到导入的模块时引发。...停止迭代 由 next()函数引发,表示迭代器不再返回任何项。 句法误差 遇到语法错误时由解析器引发。 内建 Error 当缩进不正确时引发。...系统误差 解释器检测到内部错误时引发。 系统退出 由 sys.exit()函数引发。 类型错误 当函数或操作应用于不正确类型的对象时引发。...>'2'+2TypeError: must be str, not int Copy 值错误 当函数的参数类型不合适时,会抛出ValueError。

18420

SHFileOperation函数使用的介绍

FOF_ALLOWUNDO 0×0040 如果设置,这个标志强迫函数移动被删除的文件到‘回收站’中。否则,文件将被物理从磁盘上删除。...SHFileOperation()函数的返回值 MSDN资料中说明,SHFileOperation()在成功时返回0,失败时返回非0值。显然这是真的,但并不是最有用的解释。...重复测试这个函数,可以确信它有非常多的终止方式。事实上,我们经常在系统错误的提示中运行,在有些地方这个函数只是简单返回从更靠近文件系统的其它程序中获得的返回码。...117 一个IOCTL(输入/输出控制),在目的路径中有错误时或取消了新目录的建立时,这个错误发生了。 123 你正在试图重命名一个文件,然而你给出的名字是一个已经存在的文件。...它也有一个无用的描述:文件名,目录名,或卷标号的语法是不正确的。 1026 在试图移动或拷贝一个不存在的文件时,出现这个文件系统。一般,它提示了,源缓冲中的某些东西应该修改一下。

67910

【Python 入门第十七讲】异常处理

TypeError:当操作或函数应用于错误类型的对象(例如将字符串添加到整数)时,将引发此异常。NameError:当在当前作用域中找不到变量或函数名称时,将引发此异常。...例:TypeError:当操作或函数应用于错误类型的对象时,会引发此异常。下面是一个示例:这里会引发“TypeError”,因为要添加的两种数据类型不同。...x = 5y = "hello"z = x + y输出:尝试 catch 块来解决它:代码尝试将整数 (x) 和字符串 (y) 相加,这不是有效的操作,它将引发 x y TypeError 。...示例:该代码定义了一个函数,该函数AbyB(a, b)计算c为 ((a+b) / (a-b)) 并处理一个势ZeroDivisionError.如果没有除以零错误,它会打印结果。...更轻松的调试:当引发异常时,Python 解释器会打印一个回溯,显示异常发生的确切位置,从而更轻松调试代码。

27411

有效处理Java异常的三个原则,你知道吗?

在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好使用它们。...每一种都描述了一类特定的I/O错误:分别是文件丢失,异常文件结尾和错误的序列化对象流.异常越具体,我们的程序就能更好回答”什么出了”这个问题。 捕获异常时尽量明确很重要。...通过在检测到错误时立刻抛出异常来实现迅速失败,可以有效避免不必要的对象构造或资源占用,比如文件或网络连接。同样,打开这些资源所带来的清理操作可以省却。...让readPreferences()显示错误信息对话框不合适,因为虽然JCheckbook目前是桌面应用程序,但我们还计划将它变成基于HTML的Web应用。那样的话,显示错误对话框显然不是个选择。...在有条件处理异常之前过早捕获它,通常会导致更严重的错误和其他异常。

1.6K10

编写可维护代码3:适当的抛出错误提示

在js开发中,调试错误是一个比较头疼的事,又不像java的debug那么方便,定位错误往往不是那么容易,除非对代码熟悉无比,但即使是自己写的代码,功能一复杂,时间一长,再想快速定位问题,至少我现在是比较头疼的...当以这种方式抛出错误时,如果没有经try-catch语句来捕获的话,浏览器通常直接在控制台显示错误消息字符串。 通常在抛出的错误提示字符串中,应尽量写清错误目标和原因。...Error:所有错误的基本类型,实际上引擎从不会抛出该类型的错误 EvalError:通过eval()函数执行代码发生错误时抛出 RangerError:一个数字超出它的边界时抛出,比较罕见 ReferenceError...:期望的对象不存在时抛出,如试图在一个null对象引用上调用一个函数。...SyntaxError:给eval()函数传递的代码中有语法错误时抛出 TypeError:变量不是期望类型时抛出。

99750

JavaScript 开发中常见错误解决小总结

,这对我们来说无疑是一种挫折,在不知如何着手解决错误的时,只能反覆检查自己的代码,看看是不是有什么奇怪的地方,有时就算停在了错误地方往往不知是什么意思,会因此花费大量的时间。...如下图,VSCode 用红色波浪线提示 family 对象有错误,当出现错误时会建议不要只检查当前行,错误可能会存在于上下文中(有可能跨多行的错误),这个例子中仔细检查可以发现在'小明'后面少了一个逗号...Uncaught ReferenceError: $ is not defined 错误类型:TypeError TypeError 是类型上的错误,同样 IDE 不会预先提示有错误,必须在执行时才会看到...❞ Uncaught RangeError: Maximum call stack size exceeded (function a() { a(); })(); 说明:在函数调用时会产生一个函数调用栈...这类错误很常见,却不容易找到出错的原因,其主要原因是在递归时超过了环境的限制(使用框架时很常见),如果遇到这错误建议改写当前调用函数的方式。

3K20

javaScript代码飘红报错看不懂?读完这篇文章再试试!

"zhangpeiyue" 不是一个构造函数。...new 操作符后应该是一个构造函数 // 2、变量不是预期类型,比如变量被作为函数来使用 let userName = "zhangpeiyue"; console.log(userName()) /.../ 报错:Uncaught TypeError: userName is not a function // 翻译:userName 不是一个函数 // 3、对象的属性或方法不存在 const obj...// 1、递归函数未设置跳出的条件 function run(){ run(); } run(); // 报错:Uncaught RangeError: Maximum call stack size...•使用try包裹的代码,即使不出错,效率比不用try包裹的代码低。•在try中,尽量少的包含可能出错的代码。•无法提前预知错误类型的错误,必须用try catch捕获。•finally可以省略。

5.4K20

JavaScript错误处理完全指南

; 创建后,错误对象将显示三个属性: message:包含错误消息的字符串 name:错误的类型 stack:函数执行的堆栈跟踪 例如,如果我们创建一个新的 TypeError 对象,带有适当的消息,该...throw new TypeError("Wrong type given, expected number"); 不太可能将异常抛出到函数条件块之外。...即使数组中只有一个 Promise 拒绝,Promise.all 会返回失败;而 Promise.any 始终为我们提供第一个已解析的 Promise(如果存在于数组中),不管发生了什么拒绝。...使用这种静态方法没有什么要处理的,因为 即使一个或多个输入 Promise 拒绝,结果始终是一个已解析的 Promise。...在下面的示例中,我们从另一个函数 consumer 调用 toUppercase,前者方便用 try/catch/finally 将函数调用包装起来: async function toUppercase

4.8K20

SHFileOperation DeleteFolder

FOF_ALLOWUNDO 0x0040 如果设置,这个标志强迫函数移动被删除的文件到‘回收站’中。否则,文件将被物理从磁盘上删除。...SHFileOperation()函数的返回值 MSDN资料中说明,SHFileOperation()在成功时返回0,失败时返回非0值。显然这是真的,但并不是最有用的解释。...重复测试这个函数,可以确信它有非常多的终止方式。事实上,我们经常在系统错误的提示中运行,在有些地方这个函数只是简单返回从更靠近文件系统的其它程序中获得的返回码。...117 一个IOCTL(输入/输出控制),在目的路径中有错误时或取消了新目录的建立时,这个错误发生了。 123 你正在试图重命名一个文件,然而你给出的名字是一个已经存在的文件。...它也有一个无用的描述:文件名,目录名,或卷标号的语法是不正确的。 1026 在试图移动或拷贝一个不存在的文件时,出现这个文件系统。一般,它提示了,源缓冲中的某些东西应该修改一下。

84620

11 . Python3之异常,调试和测试

异常就是程序运行时发生错误的信号(在程序出现错误时,会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行随之终止),在python中错误出发的异常如下: 而错误分成两种: 1.语法错误(...,基本上是由于另有一个同名的全局变量,导致你以为正在访问它 ValueError 传入一个调用者不期望的值,即使值的类型是正确的 更多异常 异常名称 描述 BaseException 所有异常的基类...单元测试用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作. 比如对函数abs(),我们可以编写以下几个测试用例: 输入正数,比如1、1.2/0。...输入0,期待返回0 输入非数值类型,比如None、[]、{},期待跑出TypeError。 把上面的测试用例放到一个测试模块里,就是一个完整的单元测试....如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。 单元测试通过后有什么意义呢?

1.4K40

Python编程常见出错信息及原因分析(2)

, in x.count(3) AttributeError: 'set' object has no attribute 'count' 错误原因分析与解决方案: 错误信息显示当前对象并不具有一个叫做...遇到这种错误时,首先应使用type()函数确定当前位置的x是什么类型,然后可以在使用dir()确定该类型的对象是否具有'***'属性或方法。...遇到这种错误时,需要仔细检查出现问题的代码之前的函数调用或方法调用。...遇到这种错误时,一般是调用了其他函数或方法而不知道该函数或方法返回的是元组或字符串或其他不可变容易对象,应仔细检查出现错误的代码之前的函数或方法调用代码。...map、filter、enumerate、zip等对象不支持使用下标访问其中的元素值。

3.3K70

Python回顾与整理8:错误和异常

,这是由Python解释器完成的;当然我们可以人为触发一个异常,这时开发者会认为,用户对程序的使用是不正确的,所以才引发这样一个异常。         ...当异常出现的时候,如果不对该异常进行处理,那么Python解释器就会中止当前程序的运行,因此,我们需要对异常进行处理,以达到即使异常出现了,不会中止程序的执行。...但是对于SystemExit和KeyboardInterupt这两个异常,使用Exception是无法捕获的,因为它们不是Exception的继承者,原因很简单,因为这两个异常不是由于错误条件引起的。...,从cxclass生成一个实例(不含任何异常参数)raise exclass()同上,但现在不是类;通过函数调用操作符(其实就是指加上了`()`)作用于类生成一个新的exclass实例,同样也没有异常参数...exclass);如果实例既不是exclass的实例不是exclass子类的实例,那么会复制此实例为异常参数去生成一个新的exclass实例raise instance 通过实例触发异常:异常类型是实例的类型

70810

python异常报错详解

(当一个对象根本不支持属性引用或属性赋值时,会TypeError被提出。)...异常EOFError 当其中一个内置函数(input()或raw_input())在没有读取任何数据的情况下触发文件结束条件(EOF)时引发。...(Slice索引被静默截断以落在允许的范围内;如果索引不是一个纯整数, TypeError则会被提升。) 异常KeyError 当在现有密钥集中找不到映射(字典)键时引发。...当函数返回与系统相关的错误(不是非法参数类型或其他偶然错误)时引发。的errno属性是从一个数字错误代码errno,并且strerror属性是相应的字符串,如将被C函数被打印perror()。...异常TypeError 当操作或功能应用于不适当类型的对象时提起。关联值是一个字符串,提供有关类型不匹配的详细信息。

4.6K20

跟我一起探索 HTTP-Fetch API

它返回一个 Promise,该 Promise 会在服务器使用标头响应后,兑现为该请求的 Response——即使服务器的响应是 HTTP 错误状态。你可以传一个可选的第二个参数 init。...你可以通过 Request() 和 Response() 构造函数直接创建请求和响应。...当遇到网络错误时,fetch() 返回的 promise 会被 reject,并传回 TypeError,虽然这也可能因为权限或其他问题导致。...TypeError 从Firefox 43开始,如果fetch()接收到含有用户名和密码的 URL(例如http://user:password@example.com),它将会抛出一个TypeError...因为我们是在请求一个图片,为了解析正常,我们对响应执行 [Body.blob] 来设置相应的 MIME 类型。然后创建一个 Object URL,并元素中把它显示出来。

19430

Py异常处理

异常处理在任何一门编程语言里都是值得关注的一个话题。就像写函数时肯定是判断异常处理,然后在写业务逻辑代码,这样代码才更健壮。 每当发生让Python不知所措的错误时,它都会创建一个异常对象。...如果你编写了处理异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并且显示一个traceback,其中包含有关异常的报告。本文对Python异常处理进行讲解。...可以看出在有异常的情况下,程序依然执行完毕。 上面的例子用print©放在了一个try代码块中。...raise 引发一个异常 raise是引发一个异常来检查某个条件是否成立。...用户自定义异常 你可以通过创建一个新的异常类拥有自己的异常,异常应该是通过直接或间接的方式继承自Exception类。

1.5K30

理解Python中的NoneType对象

Python中用关键词None表征null对象,它并不是0,它是Python中的第一类对象。 None是什么 对于函数,如果在函数体中没有return语句,会默认返回None。...在第2行条件判断中,并没有显式写some_result is None,这是因为None本身就是假,与之类似,下面的这些对象也是假: 空列表 空字典 空元组 空字符串 0 False 在Python中...但是,如果不给starter_list提供参数,即使用默认参数,会怎么样?...这就是问题所在,每次重新调用此函数,参数starter_list=[]居然不起作用了。 所以,正如函数名字显示的,这样定义的函数不是一个“好”函数。...,增加了第2、3行,就能够保证每次调用函数时,总是一个空列表。

13.2K41
领券