odi*_*ity 5 python coding-style idioms exception-handling
可能重复:
Python try-else
我没有看到它的好处,至少基于我刚刚在Dive Into Python中阅读的示例:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
else:
getpass = AskPassword
Run Code Online (Sandbox Code Playgroud)
(http://www.diveintopython.net/file_handling/index.html)
你为什么不能用更短/更简单的方法达到同样的效果:
try:
from EasyDialogs import AskPassword
getpass = AskPassword
except ImportError:
getpass = default_getpass
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
除了样式之外,示例中没有优势.保留代码可能会导致代码处理异常,这通常是一个好主意.例如,比较这些:
try:
from EasyDialogs import AskPassword
# 20 other lines
getpass = AskPassword
except ImportError:
getpass = default_getpass
Run Code Online (Sandbox Code Playgroud)
和
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
else:
# 20 other lines
getpass = AskPassword
Run Code Online (Sandbox Code Playgroud)
第二个是好的,当except不能提前返回,或重新抛出异常.如果可能的话,我会写:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
return False // or throw Exception('something more descriptive')
# 20 other lines
getpass = AskPassword
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |