请问 try/except 有没有办法传递对象, 而不仅仅是字符串

2020 年 2 月 3 日
 hxse
try:
    raise RuntimeError(["abc"])
except RuntimeError as error:
    print(error, type(error))
    print(error[0])
['abc'] <class 'RuntimeError'>
TypeError: 'RuntimeError' object is not subscriptable
2279 次点击
所在节点    Python
5 条回复
optional
2020 年 2 月 3 日
继承
1462326016
2020 年 2 月 3 日
一楼正解
```Python
class CustomizeError(BaseException):
def __init__(self, data):
self.data = data
super(CustomizeError, self).__init__()

def __data__(self):
return self.data


try:
raise CustomizeError([])
except CustomizeError as e:
print(e.data, type(e.data))
```
1462326016
2020 年 2 月 3 日
这么写就可以,上边的错误类写多了
不知道回复里怎么用 markdown
```python
class CustomizeError(BaseException):
def __init__(self, data):
self.data = data
super(CustomizeError, self).__init__()


try:
raise CustomizeError([11, 2, 3, 3, 4222])
except CustomizeError as e:
print(e.data, type(e.data))
```
freemoon
2020 年 2 月 3 日
error.args[0]
hxse
2020 年 2 月 3 日
@lasuar 多谢, 你这个是最简单的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/641926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX