2012-03-08 9 views
1

パスワードが間違っているためにユーザーがログインに失敗した場合に例外をキャッチします。 私はimaplibを使って関数を作っています。間違ったパスワードを入力し、エラーの詳細を含むトレースバックを取得します。 私の質問は実際には一般的です。エラーメッセージの "try and except"本文で言及しなければならない例外を特定する方法は?トレースバックから使用される例外を特定します。

これらは私が私が例外部分に何を言及します、>

>>> count("[email protected]","[email protected]") 

Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    count("[email protected]","[email protected]") 
    File "E:\Arindam\py_progs\Mail Notifier\0.0.19\Mail.py", line 24, in count 
    obj.login(m,p) 
    File "C:\Python27\lib\imaplib.py", line 500, in login 
    raise self.error(dat[-1]) 
error: [AUTHENTICATIONFAILED] Invalid credentials (Failure) 

私は試してしたい場合とを除く

got-何ですか?

try: 
    login(mail,pass): 
except ????: 
    something 

質問:

1)になりますどのような????ここに 。エラー報告書から直接推論することはできますか?

2)私たちが取得した各エラーから何を使用する必要があるのか​​を特定するための基本的なアイデアはありますか?おそらく、この欲しいもの、あなたのケースで

try: 
    ..code that might raise an exception... 
except ExceptionType, e: 
    ...do something... 

答えて

3

あなたはこのようなものを使いたい

try: 
    login(mail,pass) 
except imaplib.IMAP4.error, e: 
    print "Ouch -- an error from imaplib!" 

は、例外の種類を識別するために、あなたはその例外メッセージを見ることができます。この場合は単なる「エラー」です。残念ながら、モジュール名は含まれていません。

try: 
    login(mail,pass) 
except Exception, e: 
    print type(e) 
+0

ありがとう、その仕事をしてくれてありがとうございました。ただ1つの質問です。例外的な部分に「e」とは何か?私は、「例外」の横の1つのパラメータについてのみ言及したと思いました。その "e"の特別な意味はありますか? –

+1

'、e'はオプションです。それをインクルードすると、例外自体を保持する 'e'という名前の変数(またはカンマの後ろに書いたもの)が得られます。たとえば、私の最後の例では、これが例外オブジェクトの型(変数 'e')を出力するために使用したものです。 –

関連する問題