python中异常简单介绍

 代码如下 复制代码

try:
    print 1/0
except ZeroDivisionError, e:
    print e
except:
    print "error or exception occurred."

#integer division or modulo by zero

可以让try ... except 关联上一个else,当没有异常时则执行else。

我们可以定义自己的异常类,需要继承Error或Exception。

 代码如下 复制代码

class ShortInputException(Exception):
    '''A user-defined exception class'''
    def __init__(self, length, atleast):
        Exception.__init__(self)
        self.length = length
        self.atleast = atleast

try:
    s = raw_input("enter someting-->")
    if len(s) < 3:
        raise ShortInputException(len(s), 3)
except EOFError:
    print "why you input an EOF?"
except ShortInputException, ex:
    print "The lenght of input is %d, was expecting at the least %d" % (ex.length, ex.atleast)
else:
    print "no exception"
#The lenght of input is 1, was expecting at the least 3

 

try...finally

try:
    f = file("test.txt")
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        time.sleep(2)
        print line,
finally:
    f.close()
    print "Cleaning up..."

时间: 2024-07-29 16:20:56

python中异常简单介绍的相关文章

Linux集群和自动化维2.1 Shell和Python语言的简单介绍

第2章 生产环境下的Shell和Python脚本 接触Linux系统十多年了,Shell和Python脚本都已经完全融入笔者的生活中了.虽然Shell脚本只是一个简单的解释型语言,不受开发人员的重视,但对于系统运维工程师来说,它的作用举足轻重,它就像我们的瑞士军刀一样,可以帮助我们简化日常的工作并减少工作量.在系统维护工作中,Shell脚本常常能比用C或C++语言编写的程序更快地解决相同的问题,此外,Shell脚本具有很好的可移植性,有时跨越Unix与POSIX兼容的系统,只须略作修改即可,甚至

Python中的闭包介绍及实例

Python中的闭包介绍 闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外.所以,闭包是由函数和与其相关的引用环境组合而成的实体. 在开始介绍闭包之前先看看Python中的namespace. Python中的namespace Python中通过提供 namespace 来实现重名函数/方法.变量等信息的识别,其一共有三种 namespace,分别为:     loca

python中异常报错处理方法汇总_python

首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. Python中异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理. 打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本...首先类型不对,数量也不对. 先来看几个常见的报错如下: NameError 命名错误 原因是: name 'a' is n

Python中异常重试解决方案

在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理. 原先的流程: def crawl_page(url):          pass             def log_error(url):          pass             url = ""      try:         crawl_page(url)      except:          log_error(url)  改进后的流程: at

Python多线程编程简单介绍_python

创建线程 格式如下 复制代码 代码如下: threading.Thread(group=None, target=None, name=None, args=(), kwargs={}) 这个构造器必须用关键字传参调用 - group 线程组 - target 执行方法 - name 线程名字 - args target执行的元组参数 - kwargs target执行的字典参数 Thread对象函数 函数 描述 start() 开始线程的执行 run() 定义线程的功能的函数(一般会被子类重写

python中函数用法介绍

 代码如下 复制代码 def sumOf(a, b):     return a + b 1. 函数形参 函数中的参数名称为'形参',调用函数时传递的值为'实参' 2. 局部变量 在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的.这称为变量的作用域. global语句, 为定义在函数外的变量赋值时使用global语句.  代码如下 复制代码 def func():     global x     print "x is ", x     x

asp.net中操作符简单介绍

c#中操作符重载:  代码如下 复制代码 class Test { public static Test operator + (Test arg1,Test arg2){...} } 虽然CLR对操作符一无所知,但它却规范了编程语言应该怎样提供操作符重载,以使它们可以很容易地被不同的编程语言编写的代码所使用,每个编程语言自己决定是否支持操作符重载,以及如果提供,表达和使用它们的语法是怎样的,对于CLR来讲,操作符重载仅仅是一些方法而已. 当编辑如果代码时,编辑器会产生一个名为op_Additi

python中最简单的多进程程序

学着.. #!/usr/bin/env python # -*- coding: utf-8 -*- # Spawn a Process: Chapter 3: Process Based Parallelism import multiprocessing import time def foo(i): name = multiprocessing.current_process().name print("Starting %s \n" %name) print("cal

举例详解Python中smtplib模块处理电子邮件的使用

  这篇文章主要介绍了举例详解Python中smtplib模块处理电子邮件的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 在基于互联网的应用中,程序经常需要自动地发送电子邮件.如:一个网站的注册系统会在用户注册时发送一封邮件来确认注册;当用户忘记登陆密码的时候,通过邮件来取回密码.smtplib模块是python中smtp(简单邮件传输协议)的客户端实现.我们可以使用smtplib模块,轻松的发送电子邮件.下面的例子用了不到十行代码来发送电子邮件: ? 1 2 3 4 5 6