错误和异常处理 家庭作业帮助服务 - Assignment Help

错误和异常处理家庭作业帮助

Python中的异常处理

概述

在这篇文章中,我们将介绍Python如何处理异常的错误。

什么是异常?

一个例外是程序执行过程中发生的错误。何时

发生错误,Python会生成可以处理的异常,从而避免了您的异常

程序崩溃

为什么使用例外?

异常在许多方面方便处理错误和特殊条件

在程序中。当你认为你有一个可以产生错误的代码

你可以使用异常处理。

提高例外

您可以通过使用引发异常在自己的程序中引发异常

声明。

提升异常会破坏当前的代码执行并返回异常

回到处理。

异常错误

以下是Python中的常见异常错误:

IOError

如果文件无法打开。

ImportError

如果python找不到模块

ValueError

当内置操作或函数接收到具有该参数的参数时引发

正确的类型,但不适当的价值

键盘中断

当用户点击中断键(通常为Control-C或Delete)时,

EOFError

当内置函数(input()或raw_input())中的一个命中时引发

文件结束条件(EOF),而不读任何数据

异常错误示例

现在,当我们知道某些异常错误是什么意思时,我们来看看一些

例子:

除了IOError:

    print(’尝试读取文件时出错)“

除了ValueError:

    print(’在文件中找到的非数字数据’)

除了ImportError:

    打印“找不到模块”

除了EOFError:

    print(’你为什么对我做一个EOF?’)

除了KeyboardInterrupt:

    打印(“您取消了操作”。)

除:

    print(’发生错误’)

尽量使用尽可能少的try块,并尝试区分故障

条件由他们抛出的种种异常。

设置异常处理块

要在Python中使用异常处理,首先需要有一个catch-all除外

条款。

“try”和“except”是Python关键字,用于捕获异常。

try-except [exception-name](见上面的例子)块

try子句中的代码将通过语句执行。

如果发生异常,则try块的其余部分将被跳过

except子句将被执行。

尝试:

    一些声明在这里

除:

    异常处理

让我们看一个简单的例子,说明如何做到这一点:

尝试:

    打印1/0

除了ZeroDivisionError:

    打印“你不能除以零,你很傻”。

它是如何工作的?

错误处理是通过使用在try中捕获的异常来完成的

块和处理在块外。如果遇到错误,尝试块

代码执行停止并转移到除了块。

除了在try块之后使用一个except块,还可以使用

终于阻止了。

finally块中的代码将被执行,而不管是否有异常

发生。

代码示例

让我们写一些代码来看看当你不使用错误处理时会发生什么

程序。

该程序将要求用户输入1到10之间的数字,然后打印

号码。

number = int(raw_input(“输入1到10之间的数字”))

打印“你输入的号码”,号码

只要用户输入一个数字,这个程序就可以很好玩

如果用户放入别的东西(如字符串),会发生什么?

输入介于1到10之间的数字

你好

您可以看到,当我们输入一个字符串时,程序会抛出一个错误。

追溯(最近呼叫最后):

  文件“enter_number.py”,第1行

    number = int(raw_input(“输入介于1到10之间的数字)

“))

ValueError:int()的无效字面值为10:’hello’

ValueError是一个异常类型。让我们看看我们如何使用异常处理

修复以前的程序

导入系统

打印“让我们修复以前的异常处理代码”

尝试:

    number = int(raw_input(“输入介于1到10之间的数字)

“))

除了ValueError:

    打印“仅限数字”

    sys.exit()

打印“你输入的号码

“,号码

如果我们现在运行程序,并输入一个字符串(而不是一个数字),我们可以看到

我们得到不同的输出。

让我们修复以前的异常处理代码

输入介于1到10之间的数字

你好

只有Err ..数字

尝试…除… else子句

else子句中的一个try,except语句必须遵循所有的except子句,而且是

对于如果try子句不引发必须执行的代码,这是有用的

例外。

尝试:

    data = something_that_can_go_wrong

除了IOError:

    handle_the_exception_error

其他:

    doing_different_exception_handling

else子句中的异常不由前面的except子句来处理。

确保else子句在finally块之前运行。

尝试… finally子句

finally子句是可选的。它旨在定义清理操作

必须在所有情况下执行

尝试:

    提起KeyboardInterrupt

最后:

    打印“再见,世界!”

…再见,世界!

键盘中断

总是在离开try语句之前执行finally子句,无论是否

异常发生与否。

请记住,如果不在except行上指定异常类型,它将会

捕获所有异常,这是一个坏主意,因为这意味着你的程序将忽略

意外的错误以及其他块实际准备的错误

处理。

到目前为止,错误消息还没有被提到过,但是如果你已经尝试了这些例子,你可能已经看到了一些。有(至少)两种可区分的错误:语法错误和异常。

8.1。语法错误

语法错误(也称为解析错误)可能是您仍在学习Python时最常见的抱怨:

解析器重复违规行,并显示一个指向检测到错误的行中的最早点的“箭头”。该错误是由箭头之前的令牌引起的(或至少是检测到的):在示例中,在关键字print处检测到错误,因为在它之前缺少冒号(’:’)。打印文件名和行号,以便您知道从脚本输入的位置。

8.2。例外

即使语句或表达式在语法上是正确的,当尝试执行它时也可能导致错误。在执行期间检测到的错误称为异常,并且不会无条件致命:您将很快学习如何在Python程序中处理它们。然而,大多数异常都不由程序处理,并导致错误消息,如下所示:

我们在homeworkchina.com为错误和异常处理家庭作业帮助提供专家帮助

 家庭作业。我们的导师是为各级学生提供家庭作业帮助的专家。

Posted on March 31, 2017 in 蟒蛇

Share the Story

Back to Top
Share This