ValueError(值错误):指程序中使用了无效的值。例如,将字符串转换为整数时,如果字符串不能表示一个有效的整数,就会引发ValueError。可以通过检查输入值的有效性来解决。 KeyError(键错误):指程序中使用了不存在的字典键。可以通过检查字典中是否存在指定的键来解决。
# 示例 ValueError int("abc") # 试图将无法转换为整数的字符串转换为整数 以上只是一些常见的内置异常类型示例。这些错误类型,都会在控制台进行输出。 2. 异常(Exceptions) 与错误不同,异常是一种更加可控和处理的情况。当程序遇到意外或不正常的情况时,会引发异常。这些异常可以被程序捕获(catch)并进行适当的处理...
KeyError:当在字典中找不到键时引发此异常。 ValueError:当函数或方法被调用时引发此异常,例如当字符串不表示有效整数时,试图将字符串转换为整数。 AttributeError:当在对象上找不到属性或方法时,例如试图访问类实例的不存在的属性时,会引发此异常。 IOError:当I/O操作(如阅读或写入文件)由于输入/输出错误而失败时...
KeyError:当在字典中找不到键时,会引发此异常。 ValueError:当使用无效的参数或输入调用函数或方法时,例如,当字符串不表示有效整数时,尝试将字符串转换为整数,则会引发此异常。 AttributeError:当在对象上找不到属性或方法时,例如尝试访问类实例的不存在的属性,则会引发此异常。 IOError:当 I/O 操作(如读取或写...
except ValueError,e: print "error ! please enter 1-100" continue if guess > num: print "guess bigger:",guess elif guess < num: print "guess smaller:",guess else: print "guess right,game over" break 3、try-finally语句 语句是否发生异常都...
万物皆对象,python的错误也是class,所有的错误类型都继承自BaseException,各个类型的错误之间可能会存在继承关系,比如UnicodeError是ValueError的子类,如果catch语句中同时出现了这两个错误,且UnicodeError在ValueError的后面处理的,那么永远都捕获不到UnicodeError。
处理异常的标准方法就是使用try...except语句。这一点其实比较类似于Java中的try...catch语句,事实上,大部分语言都有类似的捕捉异常的方法。 通常来说,可能产生异常的代码应该被try语句囊括进去,如果报异常的就会立即停止try语句中的剩余代码,并执行except语句中的代码。
#Exception是错误类型,能catch到所有的异常,最好不要写这个,e是错误的信息,python3的写法 exceptException as e: pass #常用异常的错误类型 # ValueError:值的类型不正确 # IndexError:捕获索引错误 # KeyboardInterrupt:键盘输入ctrl+c,ctrl+d被按下
# 异常处理 try: pass #Exception是错误类型,能catch到所有的异常,最好不要写这个,e是错误的信息,python3的写法 except Exception as e: pass #常用异常的错误类型 # ValueError:值的类型不正确 # IndexError:捕获索引错误 # KeyboardInterrupt:键盘输入ctrl+c,ctrl+d被按下 ...
如此我们就可以在函数上加个@catch_exceptions装饰器,移除函数内重复的异常处理样板代码,使核心业务逻辑变得更简洁。异常装饰器函数是一个常见的Python开发模式,能大幅减少重复代码。如果项目使用 Flask/Django 框架,它们也内置了模块化的异常装饰器来简化异常处理。try/except性能分析 由于try/except语句的异常处理机制的...