簡體   English   中英

Python 出現異常繼續執行

[英]Python Continue with execution in case of exception

盡管存在異常,我仍在嘗試繼續使用我的代碼。 只需打印異常並繼續代碼。

下面是示例:

def mkdir(path):
        mypath = "./customers/"+path
        print(mypath)
        try:
            os.makedirs(mypath)
        except OSError as exc:
            if exc.errno == errno.EEXIST and os.path.isdir(mypath):
                pass

if __name__ == '__main__':
    item = 'dev'
    mkdir(item)
    print("Done")

但它從不打印完成。

控制台 OutPut

./customers/dev
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-45-3ce58775d916> in mkdir(path)
      4         try:
----> 5             os.makedirs(mypath)
      6         except OSError as exc:

/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py in makedirs(name, mode, exist_ok)
    220     try:
--> 221         mkdir(name, mode)
    222     except OSError:

FileExistsError: [Errno 17] File exists: './customers/dev'

During handling of the above exception, another exception occurred:

NameError                                 Traceback (most recent call last)
<ipython-input-45-3ce58775d916> in <module>
     10 if __name__ == '__main__':
     11     item = 'dev'
---> 12     mkdir(item)
     13     print("Done")

<ipython-input-45-3ce58775d916> in mkdir(path)
      5             os.makedirs(mypath)
      6         except OSError as exc:
----> 7             if exc.errno == errno.EEXIST and os.path.isdir(mypath):
      8                 pass
      9 

NameError: name 'errno' is not defined

請提供任何幫助

需要導入 errno 模塊。

errno 模塊定義了許多符號錯誤代碼

你忘了import errorno

import os
import errno


def mkdir(path):
    mypath = "./customers/" + path
    print(mypath)
    try:
        os.makedirs(mypath)
    except OSError as exc:
        print(exc.errno)
        if exc.errno == errno.EEXIST and os.path.isdir(mypath):
            pass


if __name__ == '__main__':
    item = 'dev'
    mkdir(item)
    print("Done")

做就是了:

except OSError:
    pass

except Exception到 except all exceptions(盡管不理想)。 您正在嘗試使用不導入的模塊(我認為您不需要為此腳本導入 errno)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM