找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2333|回复: 3

[求助] 异常处理try……except为什么没有发挥作用

3

主题

6

帖子

6

积分

贫民

积分
6
KeynesH0706 发表于 2018-7-24 09:17:31 | 显示全部楼层 |阅读模式
下面是我联系的代码,根据教程上,使用try……except可以令程序不报错继续运行下去但是不知道为什么我的程序依然在print(3 / 0)这里报错了,求大神指点。# -*- coding: utf-8 -*-

"""
像print(3/0)就是错误
"""

"""
需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行
"""


"""
错误处理的语句:
try……except……else
格式:
try:
    语句t
except 错误码 as e:
    语句1
except 错误码 as e:
    语句2
else:
    语句e   
其中else语句可有可无

逻辑:
try和语句t是用来检测语句中是否有错误
下面则是按照不同的错误进行不同的处理
当下面所有的错误都没对上的时候,就按照else来进行处理
"""

print(3 / 0)
print(num)
try:
    print(3 / 0)
    print(num)
except ZeroDivisionError as e:
    print("您输入的分母为0!")
except NameError as e:
    print("没有该变量")
else:
    print("代码没有问题!")

print("****************")

"""
一般情况下,我们使用except但是却不指定任何的错误类型
例如:
try:
    print(4/0)
except:
    print("程序出现了异常!")
使用一个except解决多个异常
try:
    pass
except:
    print("程序出现异常")
   
也可以
except(NameError,ZeroDivisionError):
"""

print(3 / 0)
print(num)
try:
    pass
except:
    print("代码异常!")

print("****************")

回复

使用道具 举报

3

主题

6

帖子

6

积分

贫民

积分
6
KeynesH0706  楼主| 发表于 2018-7-24 09:37:16 | 显示全部楼层
运行结果是
Traceback (most recent call last):
  File "D:/python/projection/异常处理.py", line 32, in <module>
    print(3 / 0)
ZeroDivisionError: division by zero
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
lifesking 发表于 2018-7-24 14:03:27 | 显示全部楼层
报错的是你第一句:print(3 / 0)
回复 支持 反对

使用道具 举报

3

主题

6

帖子

6

积分

贫民

积分
6
KeynesH0706  楼主| 发表于 2018-7-24 17:03:30 | 显示全部楼层
lifesking 发表于 2018-7-24 14:03
报错的是你第一句:print(3 / 0)

这个问题已经解决了,是我理解错了,以为try……except可以处理try函数之外的异常,十分感谢你的回答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表