Siento la tradanza. El raise despues del except es para que saque el error que causo que el se cancelara la operacion. Es MUY importante porque de lo contrario no sacaria ningun mensaje y quedaria a ciegas el programa...
El codigo como lo tienes esta ok