错误和异常

错误和异常

错误

  • 语法错误(syntax error)
  • 逻辑错误(logic error)
  • 执行期间错误(runtimne error)

demo:

for i in range(10)

    print(i)

out —>

SyntaxError: invalid syntax

python的语法分析器完成,检测到错误所在文件和行号.以向上箭头标记错误位置.最后显示错误类型.

当程序检测到一个错误,解释器就无法继续执行下去,抛出异常,终止程序.

异常

>>> 1/0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> a=10
>>> a
10
>>> b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined

异常处理

程序一旦发生错误,程序就无法继续运行.

为了是程序健壮,可做相关异常程序处理.

try…except…

try:
    try_statements
except [exceptiomType [as identifier]]:
    except_statements
[else:
    else_statements]
[finally:
    finally_statements]
# except ZeroDivisionError:
#        print("除数不可以为0:.")
# except NameError:
#        print("请检查变量是否赋值.")
# except Exception as e:
#     print(e.args)
except (ZeroDivisionError,NameError,TypeError) as e:
    print(e.args)
else:
    print("未捕捉到异常,X/Y=12.0")
fianlly:
    print("离开try...=except 模块.")
#print(Z)

raise(触发异常)

除了系统抛出的异常,我们可以用raise语句自己触发异常.

格式:

raise[Exception[,args[,traceback]]]
  • Exception:异常类型

  • args:我们自己提供参数

  • traceback:可选,如果存在,跟踪异常对象.

try:
    raise NameError("Sorry,Error occur")
except NameError :
    print("捕捉到异常")

assert(断言)

assert condition

逻辑上相当于:

if not condition
   raise AssertionError()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值