擅长:python、mysql、java
<p>如果希望函数抛出<code>ValueError</code>,那么不要在函数中捕捉它</p>
<pre><code>def object_path(object_name):
if object_type(object_name) in ['JX', 'JW', 'MT', 'WF']:
obj_path = 'task'
elif object_type(object_name) in ['TT', 'MT', 'FT']:
obj_path = 'trigger'
elif object_type(object_name) == 'VR':
obj_path = 'virtual'
else:
raise ValueError('The name of object {} is incorrect'.format(object_name))
return obj_path
</code></pre>
<p>此外,您可以将其简化为:</p>
<pre><code>def object_path(object_name):
otype = object_type(object_name)
if otype in {'JX', 'JW', 'MT', 'WF'}:
return 'task'
if otype in {'TT', 'MT', 'FT'}:
return 'trigger'
if otype == 'VR':
return 'virtual'
raise ValueError('The name of object {} is incorrect'.format(object_name))
</code></pre>
<p>但这取决于你</p>