Python exceptions All In One
1.Python List Comprehensions All In One2.Python 3 List Type errors All In One3.Python Files All In One
4.Python exceptions All In One
5.Python decorator method and decorator property All In One6.Python data hiding All In One 7.Python Magic Methods & Operator Overloading All In One8.How to fix the for...in loop errors in Python All In One9.How to check function arguments type in Python All In One10.Python rpi_ws281x library All In One11.Python function argument All In One12.How to use variable in Python String All In One13.How to change the default Python2 to Python3 on Linux All In One14.Python & PEP All In One15.How to use pip3 install the latest version package All In One16.Python for loop with index All In One17.Python try...catch All In One18.Python OOP & Class private method All In One19.Python range function All In One20.pip3 & python3 -m pip All In One21.Python 3 alias All In One22.Python Ternary Operator All In One23.The principle of uploading files with command line tools All In One24.Python __init__() method & __init__.py file All In One25.Python relative import local package module file All In One26.Python check whether a list includes some value All In One27. Python timezone package All In One28.Python script get date and time All In One29.如何把一个 Python 项目包发布到 PyPI 上指南教程 All In One30.Python 3 vs Python 2 All In One31.Python 脚本接收命令行参数的多种方式 All In One32.Python 数据类型转换 All In One33.Python errors All In One34.Python 元组解构 All In One35.Python custom modify the __add__ method All In One36.Python 3 function & *args & **kwargs All In One37.Python list methods All In One38.Python 字符串插值 All In One39.Pycharm 如何自定义新建的 Python 文件的注释模版 All in One40.Python & PEP 8 & Style Guide All In One41.小甲鱼 All In One42.PyScript All In One43.QRcode ORC All In One44.Python 3 Data Types All In One45.free Python ebook & videos46.Python API Frameworks All In One47.Python Read JSON File48.2020~2021 职业规划书49.Python Web Framework All In One50.Python errors All In One51.如何使用 Python 编写后端 API 接口52.Python Coding Interview All In One53.Jupyter All In One54.How to use PyPI to publish a Python package All In One55.Python3 & Decorators with arguments & @Decorators with arguments bug56.Python Lambda & Functional Programming57.Python & file operation mode58.Python Turtle59.Python 2 to Python 3 convert60.Spyder & Kite61..pyc & Python62.Python Learning Paths63.Python Web Frameworks64.PEP 8 & Style Guide65.Python Crawler All In One66.Python Quiz & Python Exercise67.Anaconda68.Python module all in one69.PIP & Python packages management All In One70.Versatile Python 3.x71.Python Tutorials72.Flask73.selenium & python74.如何抓取电商的数据 & Python75.Python & dict & switch...case All In One76.Spyder & Python All In One77.How to install python3 on macOS All In One78.NLP & AI79.macOS & Python & Redis All In One80.Python & Spider81.How to run multiple Python versions on Windows?82.MySQL & Python83.Python file 操作 open 官方的文档84.Python关键字查询85.常见算法:python 一个简单的方法来实现Fibonacci序列只用迭代器,没有任何复杂的递归数据结构!86.如何在pycharm中切换python版本(2/3) 的图解教程87.修复 PyCharm 使用中文字符 Python 报错的完美解决方案 All In One88.how to updating Node.js and npm89.PEP 8 -- Style Guide for Python Code All In One90.如何在 Python 中使用 UTF-8 编码 All In One91.sphinx 文档生成器 (基于 python )92.使用 ReStructuredText + Sphinx + Python 开发wiki ebooks!93.如何在Eclipse正确安装配置PyDev插件的官方教程,以及error 问题的解决方法:94.在线的代码托管平台 coding.net ===中国扩展版github95.python ( pycharm EDU)Python exceptions All In One
Different exceptions are raised for different reasons.
Common exceptions:
ImportError
: an import fails;IndexError
: a list is indexed with an out-of-range number;NameError
: an unknown variable is used;SyntaxError
: the code can't be parsed properly;TypeError
: a function is called on a value of an inappropriate type;ValueError
: a function is called on a value of the correct type, but with an inappropriate value.
Python has several other built-in
exceptions, such as ZeroDivisionError
and OSError
.
Third-party libraries also often define their own exceptions.
single except
#!/usr/bin/env python3
# coding: utf8
__author__ = 'xgqfrms'
__editor__ = 'vscode'
__version__ = '1.0.1'
__github__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One'
__git__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One.git'
__copyright__ = """
Copyright (c) 2012-2050, xgqfrms; mailto:xgqfrms@xgqfrms.xyz
"""
"""
/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-01-01
* @updated 2023-06-01
*
* @description
* @augments
* @example
* @link
*
*/
try:
num1 = 7
num2 = 0
num3 = 2
print (num1 / num3)
print("✅ Done calculation")
print (num1 / num2)
except ZeroDivisionError:
print("❌ An error occurred, due to zero division")
"""
$ py3 ./exception-handling-try-except.py
3.5
✅ Done calculation
❌ An error occurred, due to zero division
"""
multi except
#!/usr/bin/env python3
# coding: utf8
__author__ = 'xgqfrms'
__editor__ = 'vscode'
__version__ = '1.0.1'
__github__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One'
__git__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One.git'
__copyright__ = """
Copyright (c) 2012-2050, xgqfrms; mailto:xgqfrms@xgqfrms.xyz
"""
"""
/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-01-01
* @updated 2023-06-01
*
* @description
* @augments
* @example
* @link
*
*/
try:
variable = 10
print(variable + "hello")
print(variable / 2)
except ZeroDivisionError:
print("❌ Divided by zero")
except (ValueError, TypeError):
print("❌ ValueError or TypeError occurred")
"""
$ py3 ./exception-handling-try-multi-except.py
❌ ValueError or TypeError occurred
"""
finally
try:
print("Hello World")
print(1 / 0)
except ZeroDivisionError:
print("❌ Divided by zero")
finally:
print("👻 This code will run no matter what")
"""
$ py3 ./exception-handling-try-except-finally.py
Hello World
❌ Divided by zero
👻 This code will run no matter what
"""
else
try:
print(1)
except ZeroDivisionError:
print("❌ ZeroDivisionError")
else:
print("✅")
try:
print(1/0)
except ZeroDivisionError:
print("❌❌ ZeroDivisionError")
else:
print("✅✅")
"""
$ py3 ./exception-handling-try-except-else.py
1
✅
❌❌ ZeroDivisionError
"""
raise
# You can throw (or `raise`) exceptions when some condition occurs.
# You need to specify the `type` of the exception raised.
try:
num = 102
if num > 100:
# 自定 throw error 类型
raise ValueError
except ValueError:
print("❌ ValueError")
# 没有处理 raise ❌
num = 102
if num > 100:
# 自定 throw error 类型
raise ValueError
"""
$ py3 ./exception-handling-raise.py
❌ ValueError
Traceback (most recent call last):
File "/Users/xgqfrms-mm/Documents/github/Python-3.x-All-In-One/src/./exception-handling-raise.py", line 16, in <module>
raise ValueError
ValueError
"""
python get exception message
Python 3
"""
You are making a program to post tweets. Each tweet must not exceed 42 characters.
Complete the program to raise an exception, in case the length of the tweet is more than 42 characters.
You can use the len() function to calculate the length of the string.
"""
tweet = input()
try:
#your code goes here
if(len(tweet) > 42):
raise ValueError("tweet 超出 42 字符的最大长度限制 ❌")
# raise SyntaxError("tweet 超出 42 字符的最大长度限制 ❌")
except Exception as err:
print("❌ Error =", err)
print("❌❌ Error args =", err.args)
print("❌❌❌ Error args[0] =", err.args[0])
# except Exception, err:
# print("❌ Error msg", err.msg)
# print("❌❌ Error message", err.message)
else:
print("✅ Posted")
"""
$ py3 ./exception-handling-say-something.py
###########################################
❌ Error = tweet 超出 42 字符的最大长度限制 ❌
❌❌ Error args = ('tweet 超出 42 字符的最大长度限制 ❌',)
❌❌❌ Error args[0] = tweet 超出 42 字符的最大长度限制 ❌
$ py3 ./exception-handling-say-something.py
xgqfrms
✅ Posted
"""
"""
class SyntaxError(Exception):
msg: str
lineno: int | None
offset: int | None
text: str | None
filename: str | None
if sys.version_info >= (3, 10):
end_lineno: int | None
end_offset: int | None
class SystemError(Exception): ...
class TypeError(Exception): ...
class ValueError(Exception): ...
class FloatingPointError(ArithmeticError): ...
class OverflowError(ArithmeticError): ...
class ZeroDivisionError(ArithmeticError): ...
class ModuleNotFoundError(ImportError): ...
class IndexError(LookupError): ...
class KeyError(LookupError): ...
class UnboundLocalError(NameError): ...
"""
Python 2
# old ❌
try:
# ...
except Exception, e:
# ...
# new ✅
try:
# ...
except Exception as e:
# ...
https://docs.python.org/zh-cn/3/library/exceptions.html
https://docs.python.org/3/tutorial/errors.html
⚠️ 注意事项:
对于 Python 3 的 Exception,与 Python 2 的 Exception 相比,有两个需要注意的地方:
- 在 Python 3 Exception 的 except 子句中,不支持使用逗号 ',' 分隔 Exception 和 e,所以需要采用
as
关键词进行替换; - 与 Python 2 Exception 类相比,Python 3 Exception 类没有
message
成员变量。
针对这个问题,可以使用err.args
方法获取得到相关的异常信息。
针对这个问题,可以使用sys.exc_info()
方法获取得到相关的异常信息。
https://www.cnblogs.com/xgqfrms/p/17589042.html#5197603
demos
#!/usr/bin/env python3
# coding: utf8
__author__ = 'xgqfrms'
__editor__ = 'vscode'
__version__ = '1.0.1'
__github__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One'
__git__ = 'https://github.com/xgqfrms/Python-3.x-All-In-One.git'
__copyright__ = """
Copyright (c) 2012-2050, xgqfrms; mailto:xgqfrms@xgqfrms.xyz
"""
"""
/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-01-01
* @updated 2023-06-01
*
* @description
* @augments
* @example
* @link
*
*/
# setter/getter
class Pizza:
def __init__(self, toppings):
self.toppings = toppings
self._pineapple_allowed = False
@property
def pineapple_allowed(self):
return self._pineapple_allowed
# property setter
@pineapple_allowed.setter
def pineapple_allowed(self, value):
if value:
password = input("Enter the password: ")
if password == "123":
self._pineapple_allowed = value
else:
raise ValueError("Alert! Intruder!")
@pineapple_allowed.getter
def pineapple_allowed(self):
return "✅" + str(self._pineapple_allowed)
try:
pizza = Pizza(["cheese", "tomato"])
print(pizza.toppings)
print(pizza._pineapple_allowed)
print("\npizza.pineapple_allowed =", pizza.pineapple_allowed)
pizza.pineapple_allowed = True
print(pizza.pineapple_allowed)
except ValueError:
print("ValueError")
finally:
print("finished")
"""
$ py3 ./class-property-setter-getter.py
['cheese', 'tomato']
False
pizza.pineapple_allowed = ✅False
Enter the password: 123
✅True
"""
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/17589042.html
未经授权禁止转载,违者必究!
合集:
Python Script
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2022-07-28 CCTV《航拍中国》系列视频 All In One
2022-07-28 看了这篇使用 dist 发布 npm 包的文章,我整个人都栓Q 了
2021-07-28 css env All In One
2021-07-28 微信小程序如何使用 iconfont All In One
2021-07-28 uni-app 如何使用 icon / iconfonts All In One
2021-07-28 Android MIDI All In One
2020-07-28 GitHub for VSCode