raise相关知识
-
一文就能全部搞定!Python技能提升——异常传播轨迹当程序出现错误时,系统会自动引发异常,除此之外,Python也允许程序自行引发异常,自行引发异常使用raise语句完成。 使用raise引发异常 如果在程序中需要自行引发异常,则应该使用raise语句,raise语句有如下三种常用的用法: 1. raise:单独一个raise 该语句引发现在上下文中捕获到的异常(如在except块中),或默认引发RuntimeError异常 2. raise 异常类:raise后带一个异常类 该语句引发指定异常类的默认实例 3. raise 异常对象:引发指定的异常对象 即使是用户自行引发的异常
-
Python异常处理总结抛出异常和自定义异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。①.raise 语句Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:raise 语句raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好,Python在exceptions模块内建了很多的异常类型,通过使用dir函数来查看exceptions中的异常类型,如下:raise 语句传递异常捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:捕捉异常②.自定义异常类型Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:自定义异常类型2. 捕捉异常和C#中的try/catch类似,Python中使用try/except关
-
Python3和Python2 异常处理except的不同Python2和Python3的Exception区别python2.x的时候:try: raise except Exception, e: print (e) return false现在python3.x的时候:try: raise except Exception as e: print (e) return false重点是: Exception 的as ,大家平时注意一下常见异常类型常见异常:Exception &n
-
Python操作数据库demo-- coding: utf-8 -- import sys import MySQLdb class transfermoney(object): def init(self,conn): self.conn = conn def check_acct_available(self, acctid): cursor = self.conn.cursor() try: sql = "select * from account WHERE acctid = %s"%acctid cursor.execute(sql) print "check_acct_available"+sql res = cursor.fetchall() if len(res)!=1: raise Exception("账号%s不存在"%acctid) finally: cursor.close() def has_enough_mon
raise相关课程
raise相关教程
- 5.1 raise try: print('try:') raise print('never reach here')except: print('except:')在第 3 行,使用 raise 抛出异常;在第 4 行,不会执行这行代码,执行 raise 后,程序流程跳转到第 5 行;在第 5 行,捕获程序抛出的异常。程序输出如下:try:except:
- 5. raise 语句 Python 提供了 raise 语句用于抛出异常,raise 语句有 3 种形式:形式功能raise不带任何参数raise Exception把异常的名称作为参数raise Exception(info)把异常的名称、异常的描述信息作为参数
- 5.2 raise Exception try: print('try:') raise ValueError print('never reach here')except ValueError: print('except ValueError:')在第 3 行,使用 raise 抛出特定类型的异常 ValueError;在第 4 行,不会执行这行代码,执行 raise 后,程序流程跳转到第 5 行;在第 5 行,捕获程序抛出的 ValueError 类型的异常。程序输出如下:try:except ValuseError:
- 5.3 raise Exception(info) 编写程序 raise.py 如下:try: text = input('Please input digit: ') if not text.isdigit(): info = '"%s" is not digit' % text raise ValueError(info)except ValueError as e: print('except ValueError: %s' % e) 在第 2 行,提示用户输入数字;在第 3 行,如果用户输入的不是数字;在第 4 行,拼接字符串 info 用于描述错误的具体信息;在第 5 行,ValueError(info) 创建了一个对象,包括:异常类型和错误信息,使用 raise 抛出该异常对象;在第 6 行,捕获程序抛出的 ValueError 类型的异常,变量 e 指向 raise 语句抛出的异常。程序输出如下:C:\> python raise.pyPlease input digit: abctry:except ValuseError: abc is not digit在第 2 行,用户输入 abc在第 4 行,提示用户的输入错误: “abc is not digit”,具体的错误信息对用户要友好
- 2. raise抛出异常 除了编程异常出现的异常外,我们可以使用raise来强制抛出一个异常。实例:def raise_exception puts "before raise exception" raise "This is a exception" puts "after raise exception"endraise_exception# ---- 输出结果 ----before raise exceptionTraceback (most recent call last): 1: from test.rb:7:in `<main>'test.rb:3:in `raise_exception': This is a exception (RuntimeError)解释:由打印我们可以看到,当执行完"before raise exception"的文字输出后,程序抛出了一个异常,这个异常的名称是我们定义的“This is a exception”。Tips:默认情况下,raise创建RuntimeError类的异常。我们也可以通过传入异常的类型,来改变raise异常的类型。实例:def inverse(x) raise ArgumentError, 'Argument is not numeric' unless x.is_a? Numeric 1.0 / x end puts inverse(2) puts inverse('not a number') # ---- 输出结果 ----0.5Traceback (most recent call last): 1: from test.rb:6:in `<main>'test.rb:2:in `inverse': Argument is not numeric (ArgumentError)解释: 我们在raise后面增加了需要抛出的异常类型,由输出结果我们可以看到,最后抛出的异常类型为ArgumentError。
- 3. 异常处理 为了捕获异常处理,我们使用begin-end将可能发生异常的代码封装它之中,并使用rescue告诉我们要处理异常的类型。让我们捕获一下第一个例子的异常。实例:def raise_exception puts "before raise exception" raise "This is a exception" puts "after raise exception"endbegin raise_exceptionrescue Security => e puts "get the exception"end# ---- 输出结果 ----before raise exceptionget the exception解释:由上面例子我们可以看到,当出现异常时,将立刻执行rescue后面的语句,而异常中断后面的代码不会执行。Tips:如图显示大多数异常属于 StandardError,默认情况下,Ruby 的异常捕获只捕获StandardError 的异常。我们也可以将异常对象映射到rescue的后面来只获取指定类型的异常。实例:def raise_exception puts "before raise exception" raise "This is a exception" puts "after raise exception"endbegin raise_exceptionrescue SecurityError => e puts "get the exception"end# ---- 输出结果 ----before raise exceptionTraceback (most recent call last): 1: from test.rb:8:in `<main>'test.rb:3:in `raise_exception': This is a exception (RuntimeError)解释:由于异常的类型是 StandardError,所以并不会触发异常捕获。我们也可以对多种异常类型进行捕获。它的形式如下显示,当异常类型不匹配时,会依次向下进行匹配,如果不发生异常,将执行else下面的语句。begin # - rescue OneTypeOfException # - rescue AnotherTypeOfException # - else # No exceptions end 实例:def raise_exception puts "before raise exception" raise "This is a exception" puts "after raise exception"endbegin raise_exceptionrescue SecurityError => e puts "get the SecurityError"rescue StandardError => e puts "get the StandardError"end# ---- 输出结果 ----before raise exceptionget the StandardError解释:当抛出异常后,首先将异常类型和 SecurityError 进行对比,发现不符合继续查找下一个,第二个异常类型 StandardError 和当前异常相符合,于是执行了它下面的语句。
raise相关搜索
-
radio
radiobutton
radiobuttonlist
radiogroup
radio选中
radius
rails
raise
rand
random_shuffle
randomflip
random函数
rangevalidator
rarlinux
ratio
razor
react
react native
react native android
react native 中文