【4858.com】分外处理,详解在Python中拍卖相当的科目

By admin in 4858.com on 2019年4月15日

目录:

详解在Python中拍卖万分的科目,详解python教程

如何是不行?

越发是3个事件,当中2个顺序,破坏程序的指令的不荒谬流的试行进度中而产生的。①般景观下,当叁个Python脚本境遇有个别状态不能够处理,就抛出一个不胜。格外是二个Python对象,它代表2个谬误。

当Python脚本抛出1个不行,它必须处理卓殊,不然将马上结束。
处理十三分:

即便有相当的大概率会引发那个的局部困惑的代码,就能够通过将疑心的代码在2个try块:保卫你的主次。在try块,包蕴以下情状except:语句,其次是代码,作为优雅的处理难题,尽恐怕块。
语法

此处是try….except…else 块的简练语法:

try:
  You do your operations here;
  ......................
except ExceptionI:
  If there is ExceptionI, then execute this block.
except ExceptionII:
  If there is ExceptionII, then execute this block.
  ......................
else:
  If there is no exception then execute this block. 

那边有局地关于上述语法要点:

  •    
    单个try语句能够有多少个差别的言语。当try块中含有希望会引发不一样类其他非凡语句,那是很有用的。
  •     也能够提供3个通用的except子句,它用来拍卖任何尤其。
  •    
    except子句后,能够包罗其余子句。块未有引发那三个:在别的块中的代码,要是在try中的代码执行。
  •     在else块是不要求try:块的代码的掩护。

例子

那里是简轻易单的例证,那将开拓三个文件并写入内容的文件中并移出符合规律:

#!/usr/bin/python

try:
  fh = open("testfile", "w")
  fh.write("This is my test file for exception handling!!")
except IOError:
  print "Error: can\'t find file or read data"
else:
  print "Written content in the file successfully"
  fh.close()

那将发出以下结果:

Written content in the file successfully

示例:

那边有四个更简明的例证,它试图打开未有权限并在文件中写入内容,所以它会引发3个十分:

#!/usr/bin/python

try:
  fh = open("testfile", "r")
  fh.write("This is my test file for exception handling!!")
except IOError:
  print "Error: can\'t find file or read data"
else:
  print "Written content in the file successfully"

那将生出以下结果:

Error: can't find file or read data

在except子句无不胜:

还足以行使区别的概念如下无不胜的宣示:

try:
  You do your operations here;
  ......................
except:
  If there is any exception, then execute this block.
  ......................
else:
  If there is no exception then execute this block. 

try-except 语句捕获全部出现的可怜。使用那种try-except
评释不被以为是三个不错的编制程序习惯,但因为它擒获全部尤其,但不会使程序员搜索大概出现的标题标根本原因。
在except子句的四个可怜:

也得以动用同样的除语句来处理三个十一分,如下所示:

try:
  You do your operations here;
  ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
  If there is any exception from the given exception list, 
  then execute this block.
  ......................
else:
  If there is no exception then execute this block. 

try-finally 语句:

能够选取finally:块连同try:块。在try块是不是抓住那些或尚未此外轮代理公司码
finally块是2个不能够不试行的块。try-finally语句的语法是如此的:

try:
  You do your operations here;
  ......................
  Due to any exception, this may be skipped.
finally:
  This would always be executed.
  ......................

请留心,能够提供except子句或finally子句,但不能够而且使用。不能够而且使用else子句与finally子句。
例子:

#!/usr/bin/python

try:
  fh = open("testfile", "w")
  fh.write("This is my test file for exception handling!!")
finally:
  print "Error: can\'t find file or read data"

如果未有权力,以写入措施展开文件,那么那将发生以下结果:

Error: can't find file or read data

无差别于的事例能够写入更简短,如下所示:

#!/usr/bin/python

try:
  fh = open("testfile", "w")
  try:
   fh.write("This is my test file for exception handling!!")
  finally:
   print "Going to close the file"
   fh.close()
except IOError:
  print "Error: can\'t find file or read data"

当二个可怜被抛出在try块中,实行及时传递到finally块。finally块中的全体语句都试行,该尤其被重新抛出,并在被处理
except 语句倘若出现在四个更加高的层在try-except语句。
Exception参数:

十分能够有叁个参数,参数是贰个值,它交给了有关这几个题指标此外新闻。参数按分外内容退换。可以因此分歧的子句提供叁个变量,如下所示捕获非凡的参数:

try:
  You do your operations here;
  ......................
except ExceptionType, Argument:
  You can print value of Argument here...

即使正在编纂代码来处理2个13分,能够有二个变量依照非常的称呼在分化的注解。假使捕捉八个分外,能够有二个变量依据格外的元组。

其1变量将吸收接纳首要涵盖相当原因的老大值。该变量能够在三个元组的款式吸收一个或多个值。该元组平常包涵错误串,错误码和3个荒唐的地点。
示例:

上面是一个格外的例子:

#!/usr/bin/python

# Define a function here.
def temp_convert(var):
  try:
   return int(var)
  except ValueError, Argument:
   print "The argument does not contain numbers\n", Argument

# Call above function here.
temp_convert("xyz");

那将发生以下结果:

The argument does not contain numbers
invalid literal for int() with base 10: 'xyz'

抛出十分:

能够通过运用raise语句抛出多少个地点的那多少个。一般raise语句的语法。
语法

raise [Exception [, args [, traceback]]]

这里,Exception是分外的连串(例如,NameError)和参数是用以卓殊的参数值。该参数是可选的;假设未提供,则丰盛的参数是None。

提及底3个参数traceback,也是可选的(并且在实施中很少使用),并且只要存在的话,那么用于相当回溯对象。
例子:

12分能够是3个字符串,1个类或2个对象。大多数Python宗旨抛出是类,有参数以为是类的实例的相当。定义新的万分是很轻松的,能够参考如下:

def functionName( level ):
  if level < 1:
   raise "Invalid level!", level
   # The code below to this would not be executed
   # if we raise the exception

注:为了抓获2个不胜,“except”语句必须引用抛出类对象或简捷的字符串一样的丰裕。例如,捕捉到上边的老大,必须写except子句,如下所示:

try:
  Business Logic here...
except "Invalid level!":
  Exception handling here...
else:
  Rest of the code here...

用户定义的可怜:

Python中,仍能透过松开的相当标准的派生类来创设本身的非凡。

上面是有关RuntimeError3个例证。那里是从RuntimeError子类的类被创制。当要求出示越来越多的现实消息时,叁个充足被擒获,那是很有用的。

在try块中,用户定义的格外引发,并夹在except块。变量e被用来创建类Networkerror的3个实例。

class Networkerror(RuntimeError):
  def __init__(self, arg):
   self.args = arg

所以尽管在地方定义的类,能够按如下方法抛出11分:

try:
  raise Networkerror("Bad hostname")
except Networkerror,e:
  print e.args

什么是11分?
极度是三个事件,在那之中二个程序,破坏程序的命令的不荒谬流的执行进程中而发…

怎么是可怜?

【4858.com】分外处理,详解在Python中拍卖相当的科目。尤其就是一个事件,该事件会在程序实行进程中爆发,影响了程序的平常实行。

壹般情状下,在Python不能够正常处理程序时就会时有产生3个可怜。

特别是Python对象,表示多个谬误。

4858.com ,当Python脚本产生尤其时大家需求捕获处理它,否则程序会截至试行。

Python编制程序中的十分处理教程,python编制程序万分处理

一、非凡简单介绍 从软件方面来说,错误是语法或是逻辑上的,当python检查测试到1个谬误时,解释器就会提议近来流已经无力回天继续实践下去,那时候就现身了充裕。非凡分为三个级次:首先是挑起尤其发生的错误,然后是检查评定和采纳或许的不二秘技。常见至极有
NameError、ZeroDivisionError、SyntaxError、IndexError、KeyError、IOError、AttributeError、ValueError、
TypeError等。全数的标准/内建老大都是从根相当派生的,如今,有二个一向从BaseException派生的要命子类:SystemExit,KeyboardInterrupt和Exception。其余的保有的内建尤其都是Exception的子类。
2、十分检查测试及处理 可怜可以经过try语句来检验,有二种重要格局:try-except和try-finally。前者能够增加贰个可选的else子句来拍卖未有检查评定到那么些的景观。一个try语句能够对应3个或多少个except语句,但只能对应叁个finally子句,except用来捕获并处理卓殊,能够拍卖三个尤其,也足以钦点可选的十二分参数(将会是1个饱含来自卓殊的代码的检查判断消息的类实例,非凡参数自个儿会组成三个元组,并储存为类实例的性质),要幸免裸except(会捕获全体特别,没有机会保存非凡产生的缘故,纵然能够因此sys.exc_info()获得,但不推荐,纵然想捕获全体尤其,能够在except中接纳BaseException类,而Exception类不包含KeyboardInterrupt和SystemExit),finally无论产生错误与否都会实践。try-except-finally是个复合语句。try质量评定到11分时,try语句块中的剩余代码是不会实行的,十分会延着酒店向上提交,直到找到适当的可怜处理器,假如达到最顶层依然未有找到呼应的微机,python解释器会呈现出追踪重临音信,然后退出。
try-except语法如下:

try: 
  try_suite 
except Exception1[, reason1]: 
  suite_for_exception_ Exception1 
except Exception2[, reason2]: 
  suite_for_exception_ Exception2 
except (Exception3, Exception4)[, reason3_4]: 
  suite_for_exceptions_ Exception3_and_Exception4 
except (Exc5[, Exc6[, ... ExcN]])[, reason]: 
  suite_for_exceptions_ Exc5_to_ExcN 
else: 
  suite_for_no_exception 
finally: 
  suite_always_run 

 可同时捕捉八个尤其,可捕捉分外对象,可忽略万分类型以捕捉全部特别

>>> try: 
  x = int(input('input x:')) 
  y = int(input('input y:')) 
  print('x/y = ',x/y) 
except ZeroDivisionError: #捕捉除0异常 
  print("ZeroDivision") 
except (TypeError,ValueError) as e: #捕捉多个异常,并将异常对象输出 
  print(e) 
except: #捕捉其余类型异常 
  print("it's still wrong") 


input x:12 
input y:0 
ZeroDivision 
>>> try: 
  x = int(input('input x:')) 
  y = int(input('input y:')) 
  print('x/y = ',x/y) 
except ZeroDivisionError: #捕捉除0异常 
  print("ZeroDivision") 
except (TypeError,ValueError) as e: #捕捉多个异常,并将异常对象输出 
  print(e) 
except: #捕捉其余类型异常 
  print("it's still wrong") 


input x:12 
input y:y 
invalid literal for int() with base 10: 'y' 

try/except 能够增多 else 语句,完结在未曾非凡时实行怎样

>>> try: 
  x = int(input('input x:')) 
  y = int(input('input y:')) 
  print('x/y = ',x/y) 
except ZeroDivisionError: #捕捉除0异常 
  print("ZeroDivision") 
except (TypeError,ValueError) as e: #捕捉多个异常 
  print(e) 
except: #捕捉其余类型异常 
  print("it's still wrong") 
else: #没有异常时执行 
  print('it work well') 


input x:12 
input y:3 
x/y = 4.0 
it work well 

3、上下文物管理理中的with语句 如上涉及的try-except和try-finally,python对隐蔽细节做了大气的干活,由此需求您担忧的仅是如何化解你所境遇的标题。另三个隐藏低层次的思梅止渴的例子是with语句,它在python二.6中标准启用。python2.5尝试性的引进了with,并对应用with作为标记符的应用程序发出那样的警告——在python二.六中,with将会化为重点字。要是你想在python二.五行使wiht语句,你不能够不用from
__fututure__ import with_statement来导入它。
如同try-except-finally,with语句也是用来简化代码的,那与用try-except和try-finally所想达到的指标千呼后应。try-except和try-finally的壹种特定的匹配用法是确定保障加利亚共产党享的财富的唯1分配,并在职务完结的时候释放它。比如文件(数据、日志、数据库等等),线程能源,简单协同,数据库连接等等,with语句的目标便是采取在那种情状。可是,with语句的意在从流程图中把try,except和finally关键字和财富分配释放相关代码统统去掉,而不是像try-except-finally那样仅仅简化代码使之易用。with语法的大旨用法如下:

with context_expr [as var]: 
  with_suite 

看起来如此简约,但with仅能做事于支撑上下文物管理理协议的靶子。当with语句实行时,便执行context_expr来博取一个上下文物管理理器,其义务是提供2个上下文对象,那是通过调用__context__()方法来完毕的。1旦我们获得了上下文对象,就会调用它的__enter__()方法。当with语句块试行达成,会调用上下文对象的__exit__()方法,有四个参数,假若with语句块符合规律截止,八个参数都以None,如若发生极度,多个参数的值分别也正是调用sys.exc_info()函数重回的多少个值:类型(非常类),值(极度实例)和纪念(traceback)相应的记忆对象。contextlib模块能够辅助理编辑写对象的上下文管理器。

大面积卓殊:
Exception                        全体越发的基类
AttributeError                 特性应用或赋值战败时引发
IOError                             试图展开不设有的公文时引发
IndexError                       在使用连串中不存在的目录时引发
KeyError                          在行使映射不设有的键时抓住
NameError                       在找不到名字(变量)时引发
SyntaxError                     在代码为不当形式时引发
TypeError                        
在内建操作照旧函数应用于错误类型的指标是诱惑
ValueError                      
在内建操作依旧函数应用李林确类型的目的,不过该目的使用不合适的值时引发
ZeroDivisionError          在除法只怕摸除操作的第3个参数为0时吸引

四.自定义格外: 继承于 Exception 的类

class myException(Exception):pass 

5.抛出格外: raise 语句

>>> def division(x,y): 
  if y == 0 : 
    raise ZeroDivisionError('The zero is not allow') 
  return x/y 

>>> try: 
  division(1,0) 
except ZeroDivisionError as e: 
  print(e) 


The zero is not allow 

6.finally 语句 无论是还是不是出现相当,最终都会实行finally的语句块内容,用于清理工科作
故而,你能够在 finally 语句中关闭文件,那样就保险了文本能健康关闭

>>> try: 
  x = int(input('input x:')) 
  y = int(input('input y:')) 
  print('x/y = ',x/y) 
except ZeroDivisionError: #捕捉除0异常 
  print("ZeroDivision") 
except (TypeError,ValueError) as e: #捕捉多个异常 
  print(e) 
except: #捕捉其余类型异常 
  print("it's still wrong") 
else: #没有异常时执行 
  print('it work well') 
finally: #不管是否有异常都会执行 
  print("Cleaning up") 


input x:12 
input y:3 
x/y = 4.0 
it work well 
Cleaning up 

那二个抛出之后,假若未有被接受,那么程序会抛给它的上1层,比如函数调用的地点,倘诺照旧未有吸收,那继续抛出,即使程序最后都未曾处理这些特别,那它就丢给操作系统了
— 你的程序崩溃了,那一点和C++同样的。

 

一、极度简要介绍从软件方面来讲,错误是语法或是逻辑上的,当python检查测试到三个谬误时,解释…

  一、try-except语句

抛出格外和自定义非凡

raise 语句

Python中的raise
关键字用于引发1个非凡,基本上和C#和Java中的throw关键字一样

#coding:UTF8

def ThorwErr():
  raise Exception("抛出一个异常")

# Exception: 抛出一个异常
ThorwErr()

raise关键字背后是抛出是一个通用的不得了类型(Exception),一般的话抛出的非常越详细越好,Python在exceptions模块内建了成都百货上千的极度类型,通过动用dir函数来查看exceptions中的分外类型,如下:

#coding:UTF8

import exceptions

# ['ArithmeticError', 'AssertionError'.....]
print dir(exceptions)

传递十分

捕捉到了老大,可是又想重新掀起它(传递相当),能够接纳不带参数的raise语句就可以:

#coding:UTF8

class MuffledCalculator:
  muffled = False
  def calc(self,expr):
    try:
      return eval(expr)
    except ZeroDivisionError:
      if self.muffled:
        print 'Division by zero is illegal'
      else:
        raise

自定义卓殊类型

经过成立一个新的非凡类,程序能够命名它们自身的不胜。非常应该是独立的存在延续自Exception类,通过直接或直接的章程。

以下为与RuntimeError相关的实例,实例中创立了一个类,基类为RuntimeError,用于在老大接触时输出更多的音信。

在try语句块中,用户自定义的格外后奉行except块语句,变量 e
是用以成立Networkerror类的实例

 

class Networkerror(RuntimeError):
    def __init__(self, arg):
        self.args = arg

#在你定义以上类后,你可以触发该异常,如下所示:

try:
    raise Networkerror("Bad hostname")
except Networkerror,e:
    print e.args

运行结果:
('B', 'a', 'd', ' ', 'h', 'o', 's', 't', 'n', 'a', 'm', 'e')

 

 

  二、try-finally语句

非凡处理

捕捉格外能够利用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获相当音讯并处理。

假若你不想在充裕产生时结束你的主次,只需在try里捕获它。

语法:

以下为简便的try….except…else的语法:

try:
<语句>        #运行别的代码
except <名字>:
<语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句>        #如果引发了'name'异常,获得附加的数据
else:
<语句>        #如果没有异常发生

try的办事规律是,当初步一个try语句后,python就在脚下先后的上下文中作标记,那样当非凡出现时就能够回去那里,try子句先施行,接下去会发出怎么样信赖于实行时是或不是出现卓殊。

  • 假如当try后的言辞施行时发出非凡,python就跳回到try并施行第一个门户差不多该尤其的except子句,至极处理完结,调控流就经过全方位try语句(除非在处理相当时又抓住新的可怜)。
  • 比方在try后的讲话里发出了万分,却从未相称的except子句,极度将被递交到上层的try,也许到程序的最上层(那样将离世程序,并打字与印刷缺省的失误消息)。
  • 要是在try子句实践时未尝发生分外,python将实践else语句后的语句(假使有else的话),然后决定流通过1切try语句。

 

  三、raise语句

实例

上边是简约的例证,它开发二个文本,在该公文中的内容写入内容,且并未有发生非凡:

 

 

 1 #coding:UTF8
 2 
 3 try:
 4     fh = open("testfile", "w")
 5     fh.write("这是一个测试文件,用于测试异常!!")
 6 except IOError:
 7     print "Error: 没有找到文件或读取文件失败"
 8 else:
 9     print "内容写入文件成功"
10     fh.close()

运行结果:
内容写入文件成功

  4、课时3三课后习题及答案

实例

上边是简简单单的例证,它打开一个文本,在该文件中的内容写入内容,但文件并未有写入权限,发生了十分:

 

 1 #coding:UTF8
 2 
 3 
 4 try:
 5     fh = open("testfile", "r")
 6     fh.write("这是一个测试文件,用于测试异常!!")
 7 except IOError:
 8     print "Error: 没有找到文件或读取文件失败"
 9 else:
10     print "内容写入文件成功"
11     fh.close()

运行结果:
Error: 没有找到文件或读取文件失败

 

使用except而不带任何尤其类型

您可以不带任何卓殊类型使用except,如下实例:

try:
    正常的操作
   ......................
except:
    发生异常,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

上述办法try-except语句捕获全体产生的可怜。但那不是3个很好的格局,大家不可能透过该程序识别出具体的卓殊新闻。因为它擒获全体的非常

 

**********************

使用except而带三种不胜类型

您也能够动用一样的except语句来拍卖八个万分新闻,如下所示:

try:
    正常的操作
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   发生以上多个异常中的一个,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

一、try-except语句

try-finally 语句

try-finally 语句无论是或不是产生万分都将推行最终的代码。

try:
<语句>
finally:
<语句>    #退出try时总会执行
raise

1经张开的文本未有可写权限,输出如下所示:

#coding:UTF8


try:
    fh = open("testfile", "r")
    try:
        fh.write("这是一个测试文件,用于测试异常!!")
    finally:
        print "关闭文件"
        fh.close()
except IOError:
    print "Error: 没有找到文件或读取文件失败"

运行结果:
关闭文件
Error: 没有找到文件或读取文件失败

当在try块中抛出四个卓越,登时实施finally块代码。

finally块中的全部语句推行后,非常被再度接触,并实行except块代码。

 

总结性:

 1 #coding:UTF8
 2 def div(a, b):
 3     try:
 4         print(a / b)
 5     except ZeroDivisionError:
 6         print("Error: b should not be 0 !!")
 7     except Exception as e:
 8         print("Unexpected Error: {}".format(e))
 9     else:
10         print('Run into else only when everything goes well')
11     finally:
12         print('Always run into finally block.')
13 
14 # 验证
15 div(2, 0)
16 div(2, 'bad type')
17 div(1, 2)

 

参数的始末分裂于万分。

**********************

python标准拾叁分

4858.com 1

 

try-except语句格式如下:

try:
    检测范围
except Exception[as reason]:
    出现异常(Exception)后的处理代码

 try-except语句用于检查测试和拍卖卓殊,举个例证来证实那整个是哪些操作的:

f = open("我为什么是一个文档.txt")
print(f.read())
f.close()

如上代码在“小编干什么是四个文档.txt”这一个文档不设有的时候,Python就会报错说文件不存在:

Traceback (most recent call last):
  File "C:\Users\14158\Desktop\lalallalalal.py", line 1, in <module>
    f = open("我为什么是一个文档.txt")
FileNotFoundError: [Errno 2] No such file or directory: '我为什么是一个文档.txt'

令人惊讶那样的用户体验很不好,由此可以这么修改:

try:
      f = open("我为什么是一个文档.txt")
      print(f.read())
      f.close()
except OSError:
      print("文件打开的过程出错啦")

地点的例子由于采取了我们习惯的语言来抒发错误的音信,用户体验当然会好广大:

文件打开的过程出错啦

唯独从程序员的角度来看,导致OSError至极的原因有无数(例如FileExistsError、FileNotFoundError等等),所以或者会更在意错误的具体内容,那里能够选用as把具体的错误消息给打字与印刷出来:

try:
      f = open("我为什么是一个文档.txt")
      print(f.read())
      f.close()
except OSError as reason:
      print("文件打开的过程出错啦,错误的原因是:" + str(reason))



文件打开的过程出错啦,错误的原因是:[Errno 2] No such file or directory: '我为什么是一个文档.txt'

 

壹、针对差别至极设置八个except

二个try语句还足以和多个except语句搭配,分别对感兴趣的不行进行检查评定处理:

try:
      sum = 1 + '1'
      f = open("我是一个不存在的文档.txt")
      print(f.read())
      f.close()
except OSError as reason:
      print("文件打开的过程出错啦,错误的原因是:" + str(reason))
except TypeError as reason:
      print("文件打开的过程出错啦,错误的原因是:" + str(reason))



文件打开的过程出错啦,错误的原因是:unsupported operand type(s) for +: 'int' and 'str'

 

二、对多个十一分统1处理

except后面还足以跟五个卓殊,然后对这一个万分实行统1的拍卖:

try:
      int("abc")
      sum = 1 + "1"
      f = open("我是一个不存在的文档.txt")
      print(f.read())
      f.close()
except (OSError,TypeError):
      print("文件打开的过程出错啦,错误的原因是:" + str(reason))



Traceback (most recent call last):
  File "C:\Users\14158\Desktop\lalallalalal.py", line 2, in <module>
    int("abc")
ValueError: invalid literal for int() with base 10: 'abc'

 

3、捕获全体的丰富

万一您不能够鲜明要对哪1类分外进行拍卖,只是梦想在try语句块里借使现身万分,能够给用户贰个“看得懂”的唤起,那么可以那样做。

…………

except:

  print(“出错了~”)

…………

而是普通不建议如此做,因为它会隐藏全数程序员未想到并且未做好处理准备的不当,例如当用户输入ctrl+C试图平息程序,却被解说为KeyboardInterrupt非凡。别的要小心的是,try语句检查评定范围内假使出现卓殊,剩下的口舌将不会实施。

 

*********************

二、try-finally语句

*********************

 假若“笔者是二个不存在的文档”确实存在,open()函数平常重返文件对象,但要命却产生在成功开发文件后的sum
= 1 +
“1”语句上。此时python将平素跳转到except语句,也正是说,文件被张开了,但并从未推行关闭的授命:

try:
      f = open("我是一个不存在的文档.txt")
      print(f.read())
      sum = 1 + "1"
      f.close()
except:
      print("出错啦")       

为了实现像那种“即便出现格外,但只可以实施的利落职业(比如在先后崩溃前保存用户文书档案)”,引进了finally来扩展try:

try:
      f = open("我是一个不存在的文档.txt")
      print(f.read())
      sum = 1 + "1"
except:
      print("出错啦")
finally:
      f.close()

若果try语句块中没有出现别的运转时现身的失实,会跳过except语句执行finally语句块的剧情。纵然出现非常,则会先推行except语句块的始末再奉行finally语句块的内容。同理可得,finally语句块中的内容正是确定保证无论怎样都将被施行的始末。

 

****************

三、raise语句

****************

 大概会问,作者的代码能否本身抛出贰个10分呢?答案是足以的,能够利用raise语句抛出1个优秀:

>>> raise ZeroDivisionError
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    raise ZeroDivisionError
ZeroDivisionError

抛出的特别仍是可以够带参数,表示非常的解说:

>>> raise ZeroDivisionError("除数不能为零!")
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    raise ZeroDivisionError("除数不能为零!")
ZeroDivisionError: 除数不能为零!

 

*******************************

肆、课时3三课后习题及答案

*******************************

4858.com 24858.com 34858.com 44858.com 54858.com 64858.com 74858.com 84858.com 94858.com 104858.com 114858.com 124858.com 134858.com 14

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有