python】【Python基础】Python异常处理结构有哪些方式

2020-11-05 10:17发布

5条回答
天天
2楼 · 2020-11-05 10:27

1.try…except…结构

在Python异常处理结构中try…except…结构使用最为频繁,其中try子句中代码块为可能引发异常的语句,except子句用来捕获相应的异常。也可以解释为,当try子句代码块执行异常并且被except子句捕获,则执行except子句的代码块

2.try…excep…else…结构

如果try代码的子句出现了异常且该异常被except所捕获,则可以执行相应的异常处理代码,此时就不会执行else中的子句;如果try中的代码没有抛出异常,则继续执行else子句代码块。

3.try…except…finally… 结构

在try…except…finally…结构中。无论try子代码块是否正常执行,finally子句中的代码块总是会得到执行。在日常开发过程中,通常用来做清理工作,用来释放try子句中申请的资源。


@CcCc
3楼 · 2020-11-05 13:58

1.try…except…结构

在Python异常处理结构中try…except…结构使用最为频繁,其中try子句中代码块为可能引发异常的语句,except子句用来捕获相应的异常。也可以解释为,当try子句代码块执行异常并且被except子句捕获,则执行except子句的代码块

2.try…excep…else…结构

如果try代码的子句出现了异常且该异常被except所捕获,则可以执行相应的异常处理代码,此时就不会执行else中的子句;如果try中的代码没有抛出异常,则继续执行else子句代码块。

3.try…except…finally… 结构

在try…except…finally…结构中。无论try子代码块是否正常执行,finally子句中的代码块总是会得到执行。在日常开发过程中,通常用来做清理工作,用来释放try子句中申请的资源。


水默
4楼 · 2020-11-05 14:03

# AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x

# IOError 输入/输出异常;基本上是无法打开文件

# ImportError 无法引入模块或包;基本上是路径问题或名称错误

# IndentationError 语法错误(的子类) ;代码没有正确对齐

# IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]

# KeyError 试图访问字典里不存在的键

# KeyboardInterrupt Ctrl+C 被按下

# NameError 使用一个还未被赋予对象的变量

# SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)

# TypeError 传入对象类型与要求的不符合

# UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,

# 导致你以为正在访问它

# ValueError 传入一个调用者不期望的值,即使值的类型是正确的

# 为什么需要异常处理 :

# 为了保证程序的健壮性与容错性,即在遇到错误时程序不会崩溃,我们需要对异常进行处理

# 错误 : 语法错误 和逻辑错误

#使用if 判断式

age=input(">>>:")

if age.isdigit():

int(age)

elif age.isspace():

print("---> 用户输入的空格")

elif len(age)==0:

print('--->用户输入的为空')

else :

print('其他非法输入')

# if 判断虽然可以做异常处理 但是必须为相同代码 写重复的操作 可读性变得极其的底

#python 为每一种异常定制一个类型,然后提供了一种特定的语法结构用来进行异常处理

# 如果错误发生的条件是不可预知的,则需要用到try...except:在错误发生之后进行处理

# #基本语法为

# try:

# 被检测的代码块

# except 异常类型:

# try中一旦检测到异常,就执行这个位置的逻辑

# 举例 如下 :

try :

age = input(">>>")

int(age) # 主逻辑

num2 = input(">>:")

int(num2) # 主逻辑

except ValueError as e :

print(e)



猫的想法不敢猜
5楼 · 2021-01-07 20:01

Python中提供了很多不同形式的异常处理结构,其基本利用思路都是:先尝试执行代码,再进行处理可能发生的错误。

1.try…except…结构
在Python异常处理结构中try…except…结构使用最为频繁,其中try子句中代码块为可能引发异常的语句,except子句用来捕获相应的异常。也可以解释为,当try子句代码块执行异常并且被except子句捕获,则执行except子句的代码块。代码例子:

math = input('成绩:')try:
    math = int(math)
     if (0<=math<=100):
        print('成绩为:',math)
    else:
        print('不在范围')except Exception as e:
    print('输入有误!')123456789

2.try…excep…else…结构
上面的例子我们是通过if语句判断学生数学成绩是否在0~100的范围,也可以通过try…except…else…结构进行编写。如果try代码的子句出现了异常且该异常被except所捕获,则可以执行相应的异常处理代码,此时就不会执行else中的子句;如果try中的代码没有抛出异常,则继续执行else子句代码块。代码例子:

math = input('成绩:')try:
    math = int(math)except Exception as e:
    print('输入有误!')else:
    if (0<=math<=100):
        print('成绩为:',math)
    else:
        print('不在范围')12345678910

3.try…except…finally… 结构
在try…except…finally…结构中。无论try子代码块是否正常执行,finally子句中的代码块总是会得到执行。在日常开发过程中,通常用来做清理工作,用来释放try子句中申请的资源。代码例子:

a = int(input('a:'))b = int(input('b:'))try:
    div = a/b    print(div)except Exception as e:
    print('输入有误')finally:
    print('运行结束!')


相关问题推荐

  • 回答 1

    可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。

  • 回答 6

    人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {&#39;http&#39;:  &#39;http://61.155.164.110:3128&#39;}http://www.goub......

  • 回答 2

    要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False  #进入循环标志while not Is_exit:User_name = input(please ...

  • 回答 2

    MacOS设置环境变量path的完全总结  一、MacOS加载bash shell 环境变量的加载顺序   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile                                              ...

  • 回答 4

    当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...

  • 回答 5

    在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...

  • 回答 2
    已采纳

    import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...

  • 回答 8

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python并不做硬性的限制。...

  • 回答 4

    什么是任务         一个电脑运行这的软件     什么是多任务         电脑同时运行着的多个软件     多任务原理         时间片的轮转     并行与并发         并发:假的多任务,多个任务共用一个核       ...

  • 回答 4

    Try...except... 假如,我们已经知道这种类型的错误,那么就可以通过一个异常扑捉来扑捉这个错误。我们可以通过try...except 来接收这个错误。打开文件写入:try:     open(abc.txt,&#39;r&#39;)except IOError:    pass再来运行程序就会看不到任...

  • 回答 10

    Python用异常对象 (exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯 (traceback, 一种错误信息)终止执行。

  • 回答 8

    面向对象和面向过程的区别:a.面向过程:  1)根据业务逻辑从上到下写代码  2)开发思路是将数据和函数按照执行的逻辑顺序组织在一起  3)分开考虑数据与函数  定义性文字:  面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的...

  • 回答 7

    NameVersionDescriptionPython3.3.3Python programming language with standard libraryPython 标准库astroid1.0.1Rebuild a new abstract syntax tree from Python's ast (required for pylint)colorama0.2.7Cross...

  • 回答 7

    java.lang.*java.util.*java.io.*java.net.*java.sql.*

没有解决我的问题,去提问