知行编程网知行编程网  2022-09-22 18:00 知行编程网 隐藏边栏  14 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python报的错误怎么处理的相关知识,包括python中异常和错误的区别,以及python怎么检查错误这些编程知识,希望对大家有参考作用。

python报错如何处理

在编写Python代码或开发实际应用的项目时,程序报出异常或错误是在所难免的,那么我们应该怎样处理这些异常呢?下面来说一下方法。


1.使用try...except捕捉异常

try:
  s=1/0
except IndexError:
  print ('except')
except KeyError:
  print ('Keyerror')
except ZeroDivisionError:
  print ('ZeroDivisionError')

try:
  s=1/0
except:
  print ('出现异常')
或有多个异常名称的格式
try:
  s = 1/0
except(IndexError,KeyError,ZeroDivisionError),e:
  print (e)


2.使用try ...except...else语句捕捉异常

当try块中的代码没有异常时,跳过except块中的代码,执行else块中的代码

工作原理:

1)。如果 try 代码块语句的执行过程中出现异常,Python 会跳回 try 并执行第一个与异常匹配的 except 块中的代码

2)。如果异常发生在 try 代码块中,并且没有匹配的 except 子句,则会将异常名称传递给程序前面输入的 try,或者转到进程的顶层(这将导致 python 终止当前程序并打印默认错误信息)

3)。如果try块中的代码执行无异常,python会执行else块中的代码


3.使用try...finally捕捉异常

当 try 块中包含 finally 语句时,python 会在执行完 try 块中的代码后执行 finally 块中的代码(无论 try 块中的代码是否有异常,finally 块中的代码都会执行)

工作原理:

1)。如果在try块中的代码执行时没有出现异常,Python会跳转到finally语句并执行该代码块,然后继续执行程序中finally语句之后的代码

2)。如果在执行 try 块中的代码时发生异常,Python 仍会执行 finally 语句中的代码块,但随后将异常传递给上层 try 语句或顶层默认处理程序,程序将not continue to execute 导致异常的语句之后的 try 块中的代码。也就是说,即使发生异常,finally 代码块仍然会被执行。与except不同的是,finally不会终止异常,而是会在finally代码块执行后继续发生。


4.使用raise抛出异常(手工引发异常)

raise<异常对象>

“异常对象”表示将抛出异常的异常名称,异常名称标识具体的异常类。 raise语句还可以指定参数来初始化异常对象,方法是在异常类的名称后加逗号并指定参数(或参数元组)。 raise 语句一旦执行,raise 语句后面的代码就无法执行

raise<异常对象>,<异常信息标识>

例子:

try:
  raise NameError
except NameError:
  print ('抛出一个异常')


5.自定义异常

格式class MyError(Exception):

 def __init__(self,value):
      self.value=value
    def __str__(self):
      return repr(self.value)
   try:
      raise MyError(2*2)
   except MyError as e:
      print('My exceotion occurred,value:',e.value)


6.使用assert语句

用于检查条件表达式是否为真。也称为断言语句,即断言检测到的表达式始终为真,如果断言失败将引发 AssertionError 异常。

语法格式:assert<条件判断表达式>

username = 'admin'
password='123456'
assert username =='admin' and password == 'admin','密码错误!'

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享