簡體   English   中英

導入時的Python異常處理

[英]Python Exception handling when Importing

第一個文件:

class E1Exception (Exception):

    def __init__(self,x):
        self.x=x


    def raiser (self,x):
        self.x=x
        if x=='So sue me':
            raise E1Exception('New Yorker')
        else:
            try:
                number = (int)(x)
                pass
            except ValueError:
                raise ValueError ()

第二檔:

import e1a
from e1a import *


def reporter (f,x):

    try:
        print f(x)
        return ('no problem')
    except ValueError:
        return ('Value')
    except E1Exception:
        return ('E1')
    else:
        return ('generic')

問題1:

為了在第二個文件中使用,功能提升器是否必須是靜態的?

問題是E1Exception從未捕獲到任何解決方案嗎?

問題是該錯誤永遠不會“引發”

http://docs.python.org/tutorial/errors.html

您必須在某個x值的某個地方編寫raise E1Exception(x)

為了在第二個文件中使用,功能提升器是否必須是靜態的?

Python沒有“靜態”的概念。 您所說的“靜態”是什么意思?

另外,我認為您沒有意識到(int)(x)在做什么。 在我看來,這就像您嘗試將x轉換為int一樣。 盡管它可以工作,但這只是偶然。 您真正在做什么是在x上調用int函數。 所以這相當於

number = int(x)

這與您的問題無關,但我認為我應該指出這一點,以防任何人感到困惑。

暫無
暫無

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

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