Habe eine allgemein frage bezüglich Exceptions in Python und die Arbeit mit denen, aber da es um GAE (Google App Engine) geht, habe ich es hier gepostet.
Also, ich möchte mittels GAE mail(s) verschiecken an eine bestimmte adresse. Es gibt einen Feedback-formular. Funktionieren tut es eig. schon, aber jetzt will ich einbisschen AJAX/RPC integrieren. Die Antwort, der funktion, die die Emails verschickt, soll dann in eine Dictionary gespeicehr werden, die dann ins JSON format umgewandelt wird
Beispiel (erfolg):
Code: Alles auswählen
# Inspiration von CouchDB API
{ #Es wurde eine Instanz der Klase mail.EmailMessage erzeugt.
#Alles richtig. Empfaenger liste enthält ['empfaenger_1@mailforspam.com', 'empfaenger_2@mailforspam.com']
"ok": true,
"recipient": [
"empfaenger_1@mailforspam.com",
"empfaenger_2@mailforspam.com"
],
"sender": "absender@gae.org"
}
Beispiel (FEHLER):
Code: Alles auswählen
{
# Absender-Adresse ist falsch oder gar nicht eingegeben worder....
"error": "InvalidEmailError", #exception InvalidEmailError()
"error_str": "Empty email address for sender."
}
Code: Alles auswählen
{ # Kein Betreff zugewiesen
"error": "ValueError", #exception ValueError()
"error_str": "May not set empty value for 'subject'."
}
Code: Alles auswählen
class AppEngineTestCase(unittest.TestCase):
def test_jsonmail(self):
print 'Hello GAE pyUnit'
email = mail.EmailMessage()
email_dict = {
'absender': 'None',
'name': 'GAE Tester',
'empfaenger': ['empfaenger_1@mailforspam.com', 'empfaenger_2@mailforspam.com'],
'betreff': 'GAE TESTING #23',
'text': 'FEHLER'
}
email.sender = email_dict.get('absender')
email.subject = email_dict.get('betreff')
email.to = ''
email.body = email_dict.get('text')
email.reply_to = email_dict.get('name') + '<' + email_dict.get('absender') + '>'
response = {}
try:
email.send()
response['ok'] = True
response['recipient'] = email_dict.get('empfaenger')
response['sender'] = email_dict.get('absender')
except Exception, e:
#ValueError: May not set empty value for 'subject'
#InvalidEmailError: Empty email address for to.
response['eroor'] = type(e).__name__
response['error_str'] = e.valie()
finally:
print simplejson.dumps(response, sort_keys=True, indent=3)
Was mache ich falsch? Versteh ich den Sinn der Exceptions falsch? Ich mein, jedesmal wenn ich eine bekomme, script wird mit fehlermeldung unterbrochen.....
Ideen? Vorschläge ? Vielleicht ein ausführliches und verständliches Tutorial zum Thema Exceptions ? (python-docs habe ich schon gelesen....)
P.S. Hier ist die Liste aller Exceptions der Klasse EmailMessage