If the parse of an uploaded Pokémon fails, don't catch the crash.
authorEevee <git@veekun.com>
Sun, 15 Aug 2010 04:16:08 +0000 (21:16 -0700)
committerEevee <git@veekun.com>
Sun, 15 Aug 2010 04:16:08 +0000 (21:16 -0700)
splinext/gts/controllers/gts.py

index 15b3457..1349c16 100644 (file)
@@ -19,6 +19,7 @@ from sqlalchemy import and_, or_, not_
 from sqlalchemy.orm import aliased, contains_eager, eagerload, eagerload_all, join
 from sqlalchemy.orm.exc import NoResultFound
 from sqlalchemy.sql import func
+from sqlalchemy.exc import IntegrityError
 
 from spline.model import meta
 from spline.lib.base import BaseController, render
@@ -196,9 +197,9 @@ class GTSController(BaseController):
             meta.Session.add(stored_pokemon)
             meta.Session.commit()
             return '\x01\x00'
-        except:
-            # If that failed (presumably due to unique key collision), we're
-            # already storing something.  Reject!
+        except IntegrityError:
+            # If that failed due to unique key collision, we're already storing
+            # something.  Reject!
             return '\x0c\x00'
 
     def page_post_finish(self, pid, data):