Python 异常 2018-08-01

  1. 例程:使用except并加上异常类型
# -*- coding: UTF-8 -*-
try:
    fh = open("a.txt",‘w‘)
    fh.write("This is a file for Exception test!")
except IOError:
    print "Error, file not found or access failure!"
else:
    print "Successful!"

输出:

[email protected]:~/code$ python test.py
Successful!
[email protected]:~/code$ cat a.txt
This is a file for Exception [email protected]
  • 通过打开a.txt也能看到write()是不加换行符的

    1.2. 为了测试,我们先把a.txt得写权限给去掉,再重新执行以上代码,可以发现无法写入而产生的异常

chmod -w a.txt
[email protected]:~/code$ python test.py
Error, file not found or access failure!
  1. 使用异常而不带任何异常类型
try:
    正常的操作
   ......................
except:
    发生异常,执行这块代码
   ......................
else:
    如果没有异常执行这块代码
  1. 使用异常而带多种异常类型
try:
    正常的操作
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   发生以上多个异常中的一个,执行这块代码
   ......................
else:
    如果没有异常执行这块代码
  1. try...finally语句:无论是否发生异常都将执行最后的代码
# -*- coding: UTF-8 -*-
try:
    fh = open("a.txt",‘w‘)
    fh.write("This is a file for Exception test!")
finally:
    print "Error: File not found or access error"

输出:

[email protected]:~/code$ python test.py
Error: File not found or access error
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    fh = open("a.txt",‘w‘)
IOError: [Errno 13] Permission denied: ‘a.txt‘

[email protected]:~/code$ chmod +w a.txt
[email protected]:~/code$ python test.py
Error: File not found or access error
  1. 异常的参数:一个异常可以带上参数,可以作为输出时的异常参数
try:
    正常的操作
   ......................
except ExceptionType, Argument:
    你可以在这输出 Argument 的值...

实例:

# -*- coding: UTF-8 -*-
def temp_convert(var):
    try:
        return int(var)
    except ValueError,Arg:
        print "参数不包含数字:",Arg

print temp_convert(‘xyz‘)

输出:

[email protected]:~/code$ python test.py
参数不包含数字: invalid literal for int() with base 10: ‘xyz‘
None
  1. 触发异常:

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

    语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。

# -*- coding: UTF-8 -*-
def mye(level):
    if level < 1:
        raise Exception,"Invalid Error!" #触发异常后,后面的代码>将不会被执行

try:
    mye(0)
except Exception,err:
    print 1,err
else:
    print 2       

输出:

[email protected]:~/code$ python test.py
1 Invalid Error!
  1. 用户自定义的异常

    通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

  • 以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息;
  • 在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。
# -*- coding: UTF-8 -*-
class NetworkError(RuntimeError):
    def __init__(self, arg):
        self.args = arg

try:
    raise NetworkError("Bad hostName")
except NetworkError,e:
    print e.args      

输出:

[email protected]:~/code$ python test.py
(‘B‘, ‘a‘, ‘d‘, ‘ ‘, ‘h‘, ‘o‘, ‘s‘, ‘t‘, ‘N‘, ‘a‘, ‘m‘, ‘e‘)

问题:为什么输出一个一个字母?以后再答

原文地址:https://www.cnblogs.com/qiulinzhang/p/9513576.html

时间: 2024-10-10 04:40:36

Python 异常 2018-08-01的相关文章

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

X100S Collection Before 2014/08/01

风暴前的东京湾 // Tokyo Bay before Storm 上野公园 // Ueno Park X100S Collection Before 2014/08/01,布布扣,bubuko.com

python 异常知识点

raise from python 在3.0 之后引入了raise from 表达式: raise exception from otherexception 当使用该语法时,第二个表达式指定了另一个异常类或实例,它会附加到引发异常的__cause__属性 注意: python3.0不再支持raise Exc,Args形式,而该形式在Python2.6中仍然可用,在Python3.0中,使用 raise Exc(Args)调用. with  as with语句格式: with expressio

Python 九、Python异常

一.python异常 1.Python异常 python运行时发生错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 Python异常是一个对象,表示错误或意外情况 在Python检测到一个错误时,将触发一个异常 Python可以通过异常传导机制传递一个异常对象,发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 Python异常也可以理解为:程序出现了错

Python异常

异常的概念: Python运行时的错误 语法错误:软件结构上错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入导致,也可能是逻辑无法生成,计算或者输出结果需 要的过程无法执行等 Python的异常是一个对象,表示错误或者意外情况 在Python检测到一个错误时,将触发一个异常 Python可以通过异常传导机制传递一个异常对象,发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 Python的异常也可以理解为:程序出现了错误而在正常控制流之外采取行为 一.解

python——异常except语句用法与引发异常

except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,<数据>:捕获指定异常及其附加的数据 except:<异常名1,异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据库 常用异常名: 异常名    描述 AttributeError 调用不存在的方法引发的异常 EOFError     遇到文件末尾引发的异常 Impor

python异常之ModuleNotFoundError: No module named &#39;test01inner02&#39;

当我们使用sys.path.append(args) 指令向程序中导入模块时其实本次append操作只是在内存中完成的,如果要永久性的添加需要修改环境变量. 我们发现当我们使用print(sys.path)后返回的是一个列表,其中包含当前文件所在项目的路径,还有python的默认加载库,添加只是暂时的. 错误调用: 目录结构: A.test0102.py文件 # coding = utf-8 def sing(): print("happay new year") B.init.py文

新手C#string类常用函数的学习2018.08.04

ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower(); 这可以使用户的输入不区分大小写,例如验证码. ToUpper()用于将字符串全部变为大写,与上面类似. Trim()可以用于去掉两边的空格. string s1 = " a b c "; s1 = s1.Trim();//用于去除字符串两边的空格 Console.WriteLine

Intel Digital Innovation Industry Summit(2018.08.17)

时间:2018.08.17地点:北京金隅喜来登大酒店 原文地址:https://www.cnblogs.com/xuefeng1982/p/10331638.html

Python异常和文件读写

Python异常 1.python异常的完整语法 try: # 提示用户输入一个整数 num = int(input("输入一个整数:")) # 使用 8 除以用户输入的整数并且输出 result = 8 / num print(result) except ValueError: print("请输入正确的整数!") except Exception as result: print("未知错误:%s" % result) else: prin