Utilizzare try/except (per di più generico) in questo caso non è molto bello.
Molto più elegante un:
codice:
while 1:
     val =  raw_input(msg)
     if isinstance(val, int):
           return val
     else:
           print "error"
Oppure, se proprio volessi utilizzare try/except:

codice:
while 1:
     val =  raw_input(msg)
     try:
          int(val)
     except ValueError:
          print "error"
     else:
          return val
Utilizzare un "except" generico (ovvero senza specificare che tipo di eccezione ci si aspetta) non è buona abitudine.