空气处理允许我们让脚本继续运行, 即使有错误｡
让我们试着用一个例子来展示我们如何处理错误和Python｡
假设我们想创建一个程序, 允许我们接受用户的输入｡
假设我们要求用户输入一个H, 那么我们使用输入提示符并说, What is your H？
这里, 我们要做的就是打印出H.
漂亮而简单的程序｡
如果我运行这个｡
我输入, 比如说, 10｡
你去那里｡
一切正常｡
但如果我没有输入数字, 而是这样呢？
那还管用
但这就是我想用我的程序做的吗？
也许我想输入年龄, 计算他们是否能玩游戏, 不管他们是否年满18岁｡
我们该怎么解决这个问题？
我们可以做的一件事就是把它包装在一个整型数里？
所以我们把用户给我们的任何东西都转换成一个整数, 所以如果我运行这个｡
我打了这个｡
哦, 我得到一个错误, 一个值错误, 无效的文字为int｡
我想改变信仰｡
这是一个整数, 但它告诉我这是一个错误｡
我做不到｡
那么我们如何用Python的错误处理来解决这个问题呢？
我们可以这样做｡
我们有tri圈, 我们有tri关键字, 它说, 嘿, 我想让你试试这段代码, 我们必须确保我们缩进它｡
所以我们试一下这段代码｡
现在部落街区内发生的任何事｡
我能处理｡
看看处理来自哪里｡
AYRES带有except关键字｡
而且除了｡
说, 嘿｡
如果三区有什么消息, 如果有什么风声, 我要你说点什么｡
所以不要让这些红色的空气从程序中退出, 做些别的事情｡
来吧
所以我要说｡
打印｡
请输入一个数字｡
让我们看看现在会发生什么｡
如果我单击“运行”｡
我多大了？
我只想写些乱七八糟的东西｡
看看我得到的｡
请输入一个数字｡
我在这里处理我的错误, 通过把我所有的代码包装在一个try块中, 这样我就可以复制粘贴, 在这里添加我的整个文件,
把它放在一个try块中, 将要发生的是, 在我的程序崩溃之前, 我的程序不会运行,
它会运行这些代码, 然后它会说,
嘿, 如果在这个块中, 发生了什么, 我们会在这里用接受块来捕捉它我就能听到了｡
做我想做的事｡
在我的情况下, 我可以说, 嘿, 请输入我们的号码｡
但我们有自己的问题, 对吧？
程序刚刚结束, 我们希望它继续运行｡
我不得不再次点击运行, 并再次要求H｡
那么, 我们如何才能确保一直运行它, 直到用户输入了有效的内容呢？
我们以前见过这种情况｡
我们可以做一个while循环, 然后说while true｡
罗恩这个｡
如果这成功了｡
我们希望能得到h, 如果我点击运行, 我的H是多少｡
不知道｡
请输入您的号码｡
你多大了？
让我们再试着打破它｡
请输入一个数字｡
好吧, 好吧｡
我十岁了｡
你去那里｡
我知道是10, 但是｡
哦, 它还在问我几岁？
理想的情况下, 我想打破这个真实的陈述｡
好吧, 我知道了
那我该怎么做呢？
我可以用else块, 我们以前见过的.
但这可以与try except块一起使用｡
我们把它放在最后, 它说, 嘿, 试试这个｡
如果出现错误, 请执行以下操作｡
但是, 如果没有其他错误, 请执行此操作｡
所以在我们的例子中, 我们可以说break｡
你知道吗？
我们甚至可以打印｡
-谢谢—谢谢
如果我停止这一切, 再跑一次, 给予他们我的年龄, 我们就很友好了｡
你去那里｡
我们结束了｡
我们打破了循环, 一切都很好｡
而这三个接受ls块可以去任何地方｡
我们可以将整个文件包装在一个try except else块中｡
我们可以把它添加到我们的函数中, 在我们的每个函数中, 我们可以使用任何我们想要的｡
这只是Python提供的另一个处理错误的工具｡
但我想问你一件事｡
如果我做了而不是打印我做了, 让我们说, 十除以年龄｡
如果我运行我的程序｡
我在这里输入0, 然后输入｡
我进去了｡
请输入我们的号码｡
但我确实输入了一个数字｡
这是一个有缺陷的程序｡
虽然我键入了一个数字, 但它仍然给我同样的错误信息｡
那我们该怎么办？
我们如何处理不同的错误, 一个是值错误, 另一个显然是零除法错误｡
在accept块中, 我可以简单地给予它我想处理什么类型的错误｡
记住, 这些都是内置的错误, 我可以复制粘贴｡
所以在我的例子中, 我想说这是一个值错误, 所以如果我运行我的程序｡
我输入零｡
我呼吸新鲜空气了｡
此除锁只接受值｡
错误｡
它不关心的任何其他错误｡
嗯嗯嗯
那我们能做些什么呢？
一种方法是复制到这里, 然后说, 嘿, 让我们再加一个, 除了,
在这个例子中我想要一个零除法误差｡
如果用户输入零, 您可以说请输入大于零的h｡
所以如果我现在运行这个｡
我做了0我得到请输入大于0的h｡
如果我做一些胡言乱语｡
我的天啊
如果我做了一些胡言乱语, 我得到请输入一个数字｡
如果我最后输入了一个数字, 看看这个｡
-谢谢—谢谢
一切正常｡
我的问题是
如果我们进去会发生什么？
此处出现另一个值错误｡
这个值的错误就是感叹号｡
现在怎么办？
我得到了什么？
请输入一个数字, 因为此接受块将只运行一次｡
一旦它捕捉到它要寻找的错误, 它就会运行｡
然后回到循环｡
因此只会捕获其中一个错误｡
让我们休息一下, 在下一个视频中了解有关错误处理的更多信息｡
再见, 再见, 再见