Python:多个try/except块,如果两个异常都失败,打印错误?
我正试图绕过一个“尝试/例外”街区。我有sqlite db,其中有两个表,我想在不同的数据帧中加载它们 有三种可能的结果,表a或表b不存在,或者两者都不存在 我不清楚我将如何写那个try/except块 比如说Python:多个try/except块,如果两个异常都失败,打印错误?,python,Python,我正试图绕过一个“尝试/例外”街区。我有sqlite db,其中有两个表,我想在不同的数据帧中加载它们 有三种可能的结果,表a或表b不存在,或者两者都不存在 我不清楚我将如何写那个try/except块 比如说 try: df = pd.read_sql("select * from table_a", db) try: df2 = pd.read_sql("select * from table_b", db) except DatabaseError:
try:
df = pd.read_sql("select * from table_a", db)
try:
df2 = pd.read_sql("select * from table_b", db)
except DatabaseError:
print('no table b')
except DatabaseError:
print('no table a')
我该如何嵌套以表示未找到表a或表b?通过取消嵌套:)
通过取消嵌套:)
您现有的代码可能是处理此问题的最佳方法 但是如果您想将其更改为不区分这两个故障,您可以删除内部的
try
:
try:
df = pd.read_sql("select * from table_a", db)
df2 = pd.read_sql("select * from table_b", db)
except DatabaseError:
print('either no table a, or no table b')
或者,如果要检测这两种故障,只需按顺序执行:
df = df2 = None
try:
df = pd.read_sql("select * from table_a", db)
except DatabaseError:
pass
try:
df2 = pd.read_sql("select * from table_b", db)
except DatabaseError:
pass
if not df and not df2:
print('neither a nor b exists')
…然后您可以添加
elif not df:
和elif not df2:
,如果您也需要这些情况。您现有的代码可能是处理此问题的最佳方法
但是如果您想将其更改为不区分这两个故障,您可以删除内部的try
:
try:
df = pd.read_sql("select * from table_a", db)
df2 = pd.read_sql("select * from table_b", db)
except DatabaseError:
print('either no table a, or no table b')
或者,如果要检测这两种故障,只需按顺序执行:
df = df2 = None
try:
df = pd.read_sql("select * from table_a", db)
except DatabaseError:
pass
try:
df2 = pd.read_sql("select * from table_b", db)
except DatabaseError:
pass
if not df and not df2:
print('neither a nor b exists')
…然后您可以添加elif not df:
和elif not df2:
,如果您也需要这些案例