Tôi đã tạo ra một loạt các hàm và tôi cần rất giống ngoại trừ các mệnh đề trong tất cả chúng, nhưng tôi ghét có quá nhiều dòng thử và ngoại trừ các mệnh đề và cùng mã bên trong mỗi hàm. Ví dụ:Lặp đi lặp lại thử và trừ các khoản
import sys
import random
def foo():
num=random.random()
try:
if num>0.5: print 'OK'
elif num>0.25: raise NameError('Too Small')
else: raise KeyboardInterrupt
except NameError:
print "%s had a NameError" % sys._getframe().f_code.co_name
except:
print "%s had a different Error" % sys._getframe().f_code.co_name
def bar():
num=random.random()
try:
if num>0.8: print 'OK'
elif num>0.6: raise NameError('Too Small')
else: raise KeyboardInterrupt
except NameError:
print "%s had a NameError" % sys._getframe().f_code.co_name
except:
print "%s had a different Error" % sys._getframe().f_code.co_name
Mã sau "thử" khác với chức năng, nhưng mã sau "ngoại trừ" giống nhau. Tôi muốn hợp nhất những câu ngoại trừ để họ không làm cho mã của tôi trông rất chật chội. Có cách nào tốt để làm điều này?
Bắt bất kỳ ngoại lệ nào thường là một ý tưởng tồi. Nó che dấu các vấn đề thực sự và làm cho việc gỡ lỗi trở nên khó khăn hơn. Nắm bắt bất kỳ ngoại lệ nào bạn biết - nếu bạn không biết về chúng, bạn có thực sự muốn bắt chúng không? –
Đó là một điểm tốt. Nếu chức năng không thành công, tôi cần kịch bản để tiếp tục. "Ngoại trừ" cuối cùng bao gồm 'print sys.exc_info() [: 2]' bao gồm tên của ngoại lệ. Có cách nào tốt hơn để làm điều này? – crunkchitis