pythonraise的简单介绍

发布时间:2022-11-14

本文目录一览:

  1. python raise 为什么执行成功也有报错信息?
  2. python抛出异常如何操作?
  3. Python有哪些语句?
  4. python raise干什么的
  5. python3的raise有traceback这个参数吗?如果有的话怎么用?
  6. 请教关于python的raise使用的问题

python raise 为什么执行成功也有报错信息?

当程序出现错误,Python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 raise Exception("抛出一个异常"),就是你自己要求的啦。

python抛出异常如何操作?

8.4. 抛出异常 raise 语句允许程序员强制抛出一个指定的异常。例如:

raise NameError('HiThere')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: HiThere

要抛出的异常由 raise 的唯一参数标识。它必需是一个异常实例或异常类(继承自 Exception 的类)。 如果你需要明确一个异常是否抛出,但不想处理它,raise 语句可以让你很简单的重新抛出该异常:

try:
    raise NameError('HiThere')
except NameError:
    print('An exception flew by!')
    raise

输出:

An exception flew by!
Traceback (most recent call last):
File "<stdin>", line 2, in ?
NameError: HiThere

Python有哪些语句?

Python语句有很多,比如说控制语句,控制语句又分为不同的种类:

  • if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。
  • for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。
  • while语句,当条件为真时,循环运行语句块。
  • try语句,与except, finally配合使用处理在程序运行中出现的异常情况。
  • class语句,用于定义类型。
  • def语句,用于定义函数和类型的方法。
  • pass语句,表示此行为空,不运行任何操作。
  • assert语句,用于程序调试阶段时测试运行条件是否满足。
  • with语句,Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
  • yield语句,在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。
  • raise语句,制造一个错误。
  • import语句,导入一个模块或包。
  • from … import语句,从包导入模块或从模块导入某个对象。
  • import … as语句,将导入的对象赋值给一个变量。
  • in语句,判断一个对象是否在一个字符串/列表/元组里。

python raise干什么的

有异常了 可以用raise决定异常了该做什么 不过 即使没有异常 也可以raise来定义满足特定条件后抛弃什么异常

try:
    count[t] += 1
except KeyError:
    count[t] = 1
if count[t] > 1:
    raise forms.ValidationError("tag '%s' 重复出现了%s次" % (str(t), str(count[t])))

python3的raise有traceback这个参数吗?如果有的话怎么用?

这个实际上是没有这个参数的,只不过有很多人在虚构出来的。

请教关于python的raise使用的问题

Python中的异常

异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。 Exception类是常用的异常类,该类包括StandardErrorStopIteration, GeneratorExit, Warning等异常类。 StandardError类是Python中的错误异常,如果程序上出现逻辑错误,将引发该异常。StandardError类是所有内建异常的基类,放置在默认的命名空间中,因此使用IOError, EOFError, ImportError等类,不需要导入exception模块。 StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。 GeneratorExit类是由Generator函数引发的异常,当调用close()时引发该异常。 Warning类表示程序中的代码引起的警告。 Python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,Python中使用try...except语句捕获异常,异常子句定义在try子句后面。

try...except的使用方法

try...except用于处理问题语句,捕获可能出现的异常。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常。 演示try...except语句捕获IOError异常:

try:
    file("hello.txt", "r") #如果文件不存在,引发异常
    print "读文件"
except IOError: #捕获IO异常
    print "文件不存在"
except: #其它异常
    print "程序异常"

Python与Java的异常处理模式相似,异常处理语句也可以嵌套,演示如下:

try:
    s = "hello"
    try:
        print s[0] + s[1]
        print s[0] - s[1]
    except TypeError:
        print "字符串不支持减法运算"
except:
    print "异常"

如果外层try子句中的代码引发异常,程序将直接跳转到外层try对应的except子句,而内部的try子句将不会被执行。

try...finally的使用方法

try...except后还可以添加一个finally子句。无论异常是否发生,finally子句都会被执行。所有的finally子句通常用于关闭因异常而不能释放的系统资源。

try:
    f = open("hello.txt", "r")
    try:
        print f.read(5)
    except:
        print "读文件异常"
    finally:
        print "释放资源"
        f.close()
except IOError:
    print "文件不存在"

使用raise抛出异常

当程序出现错误,Python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 演示raise用法:

try:
    s = None
    if s is None:
        print "s 是空对象"
        raise NameError #如果引发NameError异常,后面的代码将不能执行
    print len(s)
except TypeError:
    print "空对象没有长度"

自定义异常

Python允许程序员自定义异常,用于描述Python中没有涉及的异常情况,自定义异常必须继承Exception类,自定义异常按照命名规范以"Error"结尾,显示地告诉程序员这是异常。自定义异常使用raise语句引发,而且只能通过人工方式触发。

from __future__ import division
class DivisionException(Exception):
    def __init__(self, x, y):
        Exception.__init__(self, x, y) #调用基类的__init__进行初始化
        self.x = x
        self.y = y
if __name__ == "__main__":
    try:
        x = 3
        y = 2
        if x % y > 0: #如果大于0,则不能被初始化,抛出异常
            print x/y
            raise DivisionException(x, y)
    except DivisionException as div: #div 表示DivisionException的实例对象
        print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)

assert语句的使用

assert语句用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真,if语句中的条件判断都可以使用assert语句检测。