python学习笔记(八卡塔尔(قطر‎ - 错误、调节和测

python学习笔记(八) - 错误、调试、测试

一.错误处理

  1. 使用try .. exception .. finally

    try:

     print 'try...'
     r = 10 / 0
     print 'result:', r       # 出现异常不会打印这句话
    

    except ZeroDivisionError, e: # 如果有异常就会被捕获到

     print 'except:', e
    

    else:

     print 'no error!' # 如果没有异常就执行else
    

    finally:

     print 'finally...' # finally是肯定会执行的
    

    print 'END'

  2. 记录错误:

使用logging.exception(e)

 

  1. 抛出异常:

raise xxError(xxx)

也可以直接写一个raise,此时会把当前错误原样抛出。

 

二.调试

  1. 使用断言:assert

    def foo(s):

     n = int(s)
     assert n != 0, 'n is zero!'
     return 10 / n
    

    print foo('0')

  2. 使用logging.info(xxx)

日志级别:debug, info, warning, error

import logging
logging.basicConfig(level=logging.INFO)

s = '0'
n = int(s)
logging.info('n = %d' % n)  # INFO:root:n = 0
print 10 / n
  1. 使用pdb让程序单步调试:

启动:python -m pdb xx.py

查看代码:输入命令l

单步执行:输入命令n

查看变量:输入命令p + 变量名

退出程序:输入命令q

 

  1. 使用pdb.set_trace()

在可能出错的地方放一个pdb.set_trace()相当于设置了一个断点:

使用p + 变量名 查看变量, 使用命令c继续运行

 

import pdb

s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print 10 / n

 

 

三.单元测试

单元测试:

 

import unittest

class TestXX(unittest.TestCase):

    def setUp(self):
        print 'setUp...'

    def tearDown(self):
        print 'tearDown...'

    def test_init(self):
        d = 1
        self.assertEquals(d, 1)
        self.assertTrue(isinstance(d, int))

运行方法: python -m unittest TestXX

 

setUp和tearDown的作用:

假设测试时需要启动数据库,那么setUp方法中可以写连接数据库的代码,tearDown方法中写关闭数据库连接的代码。  

 

) - 错误、调试、测试 一.错误处理

  1. 使用try .. exception .. finally try: print try... r = 10 / 0 print result:, r # 出现异常不会打印这句...

本文由js9905com金沙网站-金沙澳门手机版网址发布于计算机,转载请注明出处:python学习笔记(八卡塔尔(قطر‎ - 错误、调节和测

您可能还会对下面的文章感兴趣: