@@ -80,10 +80,11 @@ def default(self, line):
8080 code = compile (line + '\n ' , '<stdin>' , 'single' )
8181 exec code in globals , locals
8282 except :
83- if type (sys .exc_type ) == type ('' ):
84- exc_type_name = sys .exc_type
85- else : exc_type_name = sys .exc_type .__name__
86- print '***' , exc_type_name + ':' , sys .exc_value
83+ t , v = sys .exc_info ()[:2 ]
84+ if type (t ) == type ('' ):
85+ exc_type_name = t
86+ else : exc_type_name = t .__name__
87+ print '***' , exc_type_name + ':' , v
8788
8889 # Command definitions, called by cmdloop()
8990 # The argument is the remaining string on the command line
@@ -219,10 +220,11 @@ def do_p(self, arg):
219220 value = eval (arg , self .curframe .f_globals , \
220221 self .curframe .f_locals )
221222 except :
222- if type (sys .exc_type ) == type ('' ):
223- exc_type_name = sys .exc_type
224- else : exc_type_name = sys .exc_type .__name__
225- print '***' , exc_type_name + ':' , `sys.exc_value`
223+ t , v = sys .exc_info ()[:2 ]
224+ if type (t ) == type ('' ):
225+ exc_type_name = t
226+ else : exc_type_name = t .__name__
227+ print '***' , exc_type_name + ':' , `v`
226228 return
227229
228230 print `value`
@@ -277,10 +279,11 @@ def do_whatis(self, arg):
277279 value = eval (arg , self .curframe .f_globals , \
278280 self .curframe .f_locals )
279281 except :
280- if type (sys .exc_type ) == type ('' ):
281- exc_type_name = sys .exc_type
282- else : exc_type_name = sys .exc_type .__name__
283- print '***' , exc_type_name + ':' , `sys.exc_value`
282+ t , v = sys .exc_info ()[:2 ]
283+ if type (t ) == type ('' ):
284+ exc_type_name = t
285+ else : exc_type_name = t .__name__
286+ print '***' , exc_type_name + ':' , `v`
284287 return
285288 code = None
286289 # Is it a function?
0 commit comments