我问的是如何根据cx_Oracle.Error中的message信息不同来执行不同的操作
时间: 2024-02-23 11:59:09 浏览: 26
可以使用 `cx_Oracle.Error` 的 `args` 属性来获取异常的错误信息,然后根据不同的错误信息来执行不同的操作。以下是一个示例代码:
```python
import cx_Oracle
try:
conn = cx_Oracle.connect("username", "password", "host:port/service_name")
cursor = conn.cursor()
cursor.execute("SELECT * FROM employee")
except cx_Oracle.Error as error:
error_msg = error.args[0].message
if "ORA-00942" in error_msg:
print("错误信息:表不存在!")
# 执行表不存在的操作
elif "ORA-01017" in error_msg:
print("错误信息:用户名或密码错误!")
# 执行用户名或密码错误的操作
elif "ORA-12541" in error_msg:
print("错误信息:TNS 侦听程序未启动!")
# 执行 TNS 侦听程序未启动的操作
else:
print("发生了一个异常:", error)
finally:
cursor.close()
conn.close()
```
在上述示例代码中,如果出现了 `cx_Oracle.Error` 异常,就会获取异常的错误信息并存储在 `error_msg` 变量中。然后,通过判断错误信息中是否包含特定的字符串,来确定出现的是哪种异常情况,从而执行不同的操作。如果错误信息中不包含任何已知的异常情况,则会输出异常的详细信息。最后,不管有没有异常都会执行的代码块在 `finally` 块中,用于关闭游标和连接。