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

2020-02-03 19:53:55 +08:00
 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
1844 次点击
所在节点    Python
5 条回复
optional
2020-02-03 19:57:39 +08:00
继承
1462326016
2020-02-03 20:08:54 +08:00
一楼正解
```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-02-03 20:10:45 +08:00
这么写就可以,上边的错误类写多了
不知道回复里怎么用 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))
```
lasuar
2020-02-03 20:26:28 +08:00
error.args[0]
hxse
2020-02-03 20:42:10 +08:00
@lasuar 多谢, 你这个是最简单的

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

https://www.v2ex.com/t/641926

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

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

© 2021 V2EX