Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:多个try/except块,如果两个异常都失败,打印错误?_Python - Fatal编程技术网

Python:多个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:

我正试图绕过一个“尝试/例外”街区。我有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:
        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:
,如果您也需要这些案例