Jas*_*ers 0 python try-catch except
这是我脚本的一部分:
try:
read2length = len(reads[1])
x2 = data[read1length:read1length+read2length,0]
y2 = data[read1length:read1length+read2length,1]
fig = plt.figure()
plt.bar(x2,y2, align='center')
fig.suptitle('Read 2 Camera Timeouts', fontsize=20)
plt.xlabel('Cycle', fontsize=18)
plt.ylabel('#', fontsize=16)
if read2length < 50:
plt.xticks(x1, fontsize=14)
fig.savefig(join((path),'Read 2 Camera Timeouts.jpg'))
except: pass
try:
read3length = len(reads[2])
x3 = data[read1length+read2length:read1length+read2length+read3length,0]
y3 = data[read1length+read2length:read1length+read2length+read3length,1]
fig = plt.figure()
plt.bar(x3,y3, align='center')
fig.suptitle('Read 3 Camera Timeouts', fontsize=20)
plt.xlabel('Cycle', fontsize=18)
plt.ylabel('#', fontsize=16)
if read3length < 50:
plt.xticks(x1, fontsize=14)
fig.savefig(join((path),'Read 3 Camera Timeouts.jpg'))
except: pass
Run Code Online (Sandbox Code Playgroud)
我希望脚本尝试第一个和第二个.他们是否工作我希望脚本继续.
我一直得到read2length没有定义?
这是怎么回事?
如果表达式len(reads[1])抛出异常(例如IndexError),则read2length永远不会将名称赋值给.
如果您的下一个try块尝试使用该名称,则会导致异常.
你真的不应该使用口袋妖怪异常处理(你真的不想抓住它们).使您的异常处理尽可能接近抛出异常的代码,并仅处理特定的异常.
例如,如果要处理reads[1]抛出索引错误,则只处理该异常:
try:
read2length = len(reads[1])
except IndexError:
# not enough elements here; assume 0
read2length = 0
else:
x2 = data[read1length:read1length+read2length,0]
y2 = data[read1length:read1length+read2length,1]
fig = plt.figure()
plt.bar(x2,y2, align='center')
fig.suptitle('Read 2 Camera Timeouts', fontsize=20)
plt.xlabel('Cycle', fontsize=18)
plt.ylabel('#', fontsize=16)
if read2length < 50:
plt.xticks(x1, fontsize=14)
fig.savefig(join((path),'Read 2 Camera Timeouts.jpg'))
Run Code Online (Sandbox Code Playgroud)
现在read2length总是绑定一个整数.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |