如何在python中为单个语句引发多个可能的异常
我有以下声明:如何在python中为单个语句引发多个可能的异常,python,oracle,Python,Oracle,我有以下声明: try: cx_oracle..connect(username/password@hostname:port/service) except cx_Oracle.DatabaseError: #do_stuff 假设我提供了有效的用户名、空的密码、无效的主机名和无效的服务名称;我在块中写入条件,除了块,以便根据Oracle错误代码执行某些操作 如何列出所有可能的数据库错误,而不更正发生的第一个错误 Actual o/p: TNS: listener does no
try:
cx_oracle..connect(username/password@hostname:port/service)
except cx_Oracle.DatabaseError:
#do_stuff
假设我提供了有效的用户名
、空的密码
、无效的主机名
和无效的服务
名称;我在块中写入条件,除了
块,以便根据Oracle错误代码执行某些操作
如何列出所有可能的数据库错误,而不更正发生的第一个错误
Actual o/p: TNS: listener does not currently know of service requested
Required o/p: TNS: listener does not currently know of service requested
empty password
Invalid host
可以在元组中放置多个错误。然后您可以使用e访问任何错误
try:
cx_oracle..connect(username/password@hostname:port/service)
except (cx_Oracle.DatabaseError, Error1, Error2) as e:
# do stuff
您还可以有多个例外
try:
cx_oracle..connect(username/password@hostname:port/service)
except cx_Oracle.DatabaseError:
# do stuff
except Error1:
# do stuff
不久前,我遇到了一个类似的问题,在stackoverflow上的某个地方发现了这个问题,它捕获了多个错误:
try:
cur.execute("insert into project_source_code(project, path) values(:project_id,:prj_path)",(project_id, prj_path))
except cx_Oracle.DatabaseError as e:
error, = e.args
print(error.code)
print(error.message)
print(error.context)
我有一个以上的数据库错误的可能性,代码只显示第一个发生的错误我不知道你的错误的名称,但基本上你可以取代“Error1”和“Error2”与任何你想要捕捉的错误,包括不同的数据库错误