信息分类网站程序-Python raise 用法和 python 常见异常类型

增加

raise语句的基本句型为:

<code class="prism language-python">raise [exceptionName [(reason)]]

其中,[]括起来的参数为可选参数,其作用是指定抛出的异常名称以及异常信息的相关描述。 如果省略所有可选参数,raise 将以原始形式抛出当前错误; 如果仅省略(reason),则抛出异常时不会附加异常描述信息。

也就是说,raise语句有以下三种常见用法:

显然,每次执行raise语句只能导致异常执行一次。 首先我们来测试一下上面三个加注的使用情况:

>>> raise
Traceback (most recent call last):
  File "", line 1, in <module>
    raise
RuntimeError: No active exception to reraise
>>> raise ZeroDivisionError
Traceback (most recent call last):
  File "", line 1, in <module>
    raise ZeroDivisionError
ZeroDivisionError
>>> raise ZeroDivisionError("除数不能为零")
Traceback (most recent call last):
  File "", line 1, in <module>
    raise ZeroDivisionError("除数不能为零")
ZeroDivisionError: 除数不能为零

当然,我们自动让程序引发异常,很多时候并不是为了让它崩溃。 事实上,raise语句引起的异常一般都会被try except(else finally)异常处理结构捕获并处理。 例如:

try:
    a = input("输入一个数:")
    #判断用户输入的是否为数字
    if(not a.isdigit()):
        raise ValueError("a 必须是数字")
except ValueError as e:
    print("引发异常:",repr(e))

程序运行结果为:

输入一个数字:a

引发异常:ValueError('a 必须是数字',)

可以听到,当用户输入的不是数字时,程序会单步进入if判断语句信息分类网站程序,执行raise引发ValueError异常。 但由于位于try块中,所以raise抛出的异常会被try捕获并交由 except块处理。

因此,虽然程序中使用了raise语句引发异常,但程序的执行是正常的,手动抛出的异常不会导致程序崩溃。

raise 不带任何参数

正如您在上面看到的,您可以使用不带参数的 raise 语句,例如:

try:
    a = input("输入一个数:")
    if(not a.isdigit()):
        raise ValueError("a 必须是数字")
except ValueError as e:
    print("引发异常:",repr(e))
    raise

程序执行结果为:

输入一个数字:a

引发异常:ValueError('a 必须是数字',)

Traceback (most recent call last):
  File "D:python3.61.py", line 4, in <module>
    raise ValueError("a 必须是数字")
ValueError: a 必须是数字

这里我们重点关注位于 except 块中的 raise,因为我们在它之前已经自动引发了 ValueError 异常,所以当再次使用 raise 语句时,它会再次引发。

当在未引发异常的程序中使用无参 raise 语句时,它默认为 RuntimeError 异常。 例如:

try:
    a = input("输入一个数:")
    if(not a.isdigit()):
        raise
except RuntimeError as e:
    print("引发异常:",repr(e))

程序执行结果为:

输入一个数字:a

抛出异常:RuntimeError('没有要引发的活动异常',)

python常见异常类型异常类型含义

断言错误

当assert关键字后面的条件为假时信息分类网站程序,程序将停止并抛出AssertionError

属性错误

尝试访问不存在的对象属性时抛出异常

索引错误

超出序列范围的索引将引发此异常

按键错误

当查找字典中不存在的键时会引发此异常

名称错误

尝试访问未声明的变量时抛出此异常

类型错误

不同类型数据之间的无效操作

零除错误

除法运算中除数为0时抛出此异常

在学习编程语言之前,首先要了解“编程语言”的概念。

在我们很小的时候,父母就教我们说话,也教我们如何理解别人说话的意思。 经过长时间的熏陶和自学,我们已经不知不觉地学会了说话,同时,我们也能听懂其他孩子说话的意思。 我们开始向爸爸要零用钱买饼干、玩具,还被逗着问妈妈讲……

我们说汉语,即“汉语”。 只要我们告诉妈妈我们想要什么,爸爸妈妈就会满足我们。 我们用“中国语言”来控制父亲,让母亲做我们喜欢做的事。

《汉语》有固定的格式,每个汉字代表不同的意思,我们必须正确表达,家长才能明白我们的意思。 例如,如果我们要求妈妈给我们10元零花钱,我们会说“妈妈给我10元,我想买辆车”。 如果我们说“爸爸给我10块钱的车零花钱”,或者“妈妈给我10亿元,我想买一架F-22”,妈妈会觉得奇怪,不明白我们的意思,或者误解和责怪我们。

我们通过固定格式、固定词汇的“语言”来控制别人,让别人为我们做事。 语言有很多种,包括中文、英语、法语、韩语等,虽然它们的词汇和格式不同,但都能达到相同的目的。 我们可以选择任何语言来控制别人。

同样,我们也可以通过“语言”来控制计算机,让计算机为我们做事。 这样的语言称为程序设计语言(Programming Language)。

编程语言也有固定的格式和词汇,我们必须学会使用和控制计算机。

编程语言有很多,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift、汇编语言等。 每种语言都有自己的优点,例如:

编程语言的主要目的

C/C++

C++是在C语言的基础上发展起来的。 C++包含了C语言的所有内容。 C语言是C++的一部分。 它们经常混合在一起,因此也被称为C/C++。 C/C++主要应用于PC软件开发、Linux开发、游戏开发、微控制器和嵌入式系统。

爪哇

Java是一种通用语言,可用于网站后台开发、Android开发、PC软件开发。 近年来进入大数据领域(得益于Hadoop框架的流行)。

C#

C#是Google为了对抗Java而开发的语言。 实现机制与Java类似,但C#显然失败了。 目前主要用于Windows平台上的软件开发和少量的网站后台开发。

Python

Python也是一种通用语言,主要应用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域。 近年来,它势头强劲,增长速度非常快。

PHP

PHP是一种专用语言,主要用于开发网站后台程序。

JavaScript

JavaScript最初只能用于网站后端开发,是后端开发的唯一语言,无可替代。 近年来,由于Node.js的流行,JavaScript在网站后台开发中也占据了一席之地,并且正在迅速下降。

Go语言

Go语言是Google于2009年发布的编程语言,发展非常迅速,已经在国内外得到广泛应用。 Go语言主要用于服务器端编程,这对C/C++和Java提出了很大的挑战。

Objective-C

迅速

Objective-C和Swift都只能用于苹果产品的开发,包括Mac、MacBook、iPhone、iPad、iWatch等。

汇编语言

汇编语言是计算机开发早期的一种语言。 它的执行效率很高,但开发效率很低。 因此,一般应用程序开发中不使用汇编语言。 只有模块才可以考虑汇编语言,比如操作系统内核、驱动、仪器仪表、工控等。

不同的编程语言可以与各个国家的语言进行比较。 为了表达相同的意思,可以使用不同的词语和句子。 例如,表达“hello world”:

在编程语言中,相同的操作可能使用不同的单词。 例如要在屏幕上显示“C语言中文网站”:

编程语言类似于人类语言,由直观的词汇组成,我们可以很容易地理解它的含义。 例如,在C语言中,我们使用puts这个词让计算机在屏幕上显示文本; puts 是输出字符串(output string)的简写。

使用puts在屏幕上显示“C语言中文网站”:

puts("C语言中文网");

我们把要显示的内容放在(“和”)之间,并有一个; 在最后。 你必须这样写,它是固定格式的。

摘要: 编程语言是用于控制计算机的一系列指令。 它有固定的格式和词汇(不同的编程语言有不同的格式和词汇),必须遵循,否则就会出现错误程序语言网站,也达不到我们的目标。

C语言(C Language)是一种编程语言,学习C语言主要是学习它的格式和词汇。 下面是一个完整的C语言示例,将使计算机在屏幕上显示“C语言中文网站”。

这个反例主要演示了C语言的一些固有格式和词汇。 不明白的读者不需要思考,也不需要问为什么会这样。 稍后我们会逐步给大家讲解。

#include 
int main(){
    puts("C语言中文网");
    return 0;
}

这些具有特定含义的单词和句子以特定的格式组织在一起,就形成了源代码(Source Code),也称为源代码或代码(Code)。

然后,C语言明确规定了源代码中每个单词和语句的含义,也规定了它们应该如何组织在一起。 这就是语法(Syntax)。 它类似于我们学法语时所说的“语法”,它规定了如何将特定的词汇和句子组织成可以理解的语言。

编写源代码的过程称为编程(Program)。 从事编程工作的人称为程序员(Programmer)。 程序员也很机智,喜欢调侃。 他们常说自己工作辛苦程序语言网站,地位低下,就像农民一样,所以他们称自己为“码农”,就是写代码的农民。 也有人戏称这是“程序猿”。