为了账号安全,请及时绑定邮箱和手机立即绑定

无法捕获 IndexError 并打印语句,也循环回输入

无法捕获 IndexError 并打印语句,也循环回输入

Go
MM们 2023-02-07 09:38:50
我可以循环 ValueError,但只有 ValueError 会打印语句IndexError 将停止代码,我想继续向用户询问“行号”。def file_content(file_name):    user_file = open(file_name, 'r')    content = user_file.readlines()    user_file.close()    return contentdef main():    file_name = input('Enter the name of the file: ')    try:        content = file_content(file_name)        except IOError:        print ('File can not be fount. Program will exit.')        exit()    while True:            try:            line_number = input('Enter a line number: ')            line_number = int(line_number)            break                        except IndexError:            print ('That is not a valid line number. Try again.')                except ValueError:            print ('You need to enter an integer for the line number. Try again.')                            print ('The line you requested:')    print (content[line_number-1])    main()这是我运行代码时发生的情况Enter the name of the file: datas.txtEnter a line number: wYou need to enter an integer for the line number. Try again.Enter a line number: 99The line you requested:Traceback (most recent call last):File "/Users/yenvivian/Desktop/Python HW/hw04.py", line 40, in <module>main()File "/Users/yenvivian/Desktop/Python HW/hw04.py", line 37, in mainprint (content[line_number-1])IndexError: list index out of range谢谢
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

要捕获异常,引发异常的代码必须在try:


try:

    line_number = input('Enter a line number: ')

    line_number = int(line_number)


    print ('The line you requested:')

    print (content[line_number-1])  # Inside the try


    break

        

        

except IndexError:

    print ('That is not a valid line number. Try again.')

    

except ValueError:

    print ('You need to enter an integer for the line number. Try again.')


查看完整回答
反对 回复 2023-02-07
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信