当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Python中raise问题求教
帖子发表于 : 2010-01-23 20:36 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
使用raise引发异常的联系中,编码如下:
def fun(n):
if n==0:
raise 'Zero','n is zero'
else:
print n

try:
fun(0)
except 'Zero',data:
print data
else:
print 'used to testing RAISE function.'

调试时报错,提示信息如下:
Warning (from warnings module):
File "E:/Python files/test3.py", line 9
except 'Zero',data:
DeprecationWarning: catching of string exceptions is deprecated

Traceback (most recent call last):
File "E:/Python files/test3.py", line 8, in <module>
fun(0)
File "E:/Python files/test3.py", line 3, in fun
raise 'Zero','n is zero'
TypeError: exceptions must be classes or instances, not str

调试几次,都是报错,实在没办法,向各位请教了,谢谢大家。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-24 23:02 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
各位路过的高人帮帮忙啊~


页首
 用户资料  
 
3 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-24 23:57 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
TypeError: exceptions must be classes or instances, not str
修改如下后,不报错,但是运行结果为空。
class f:
def fun(self,n):
if n==0:
raise 'Zero'
else:
print n
try:
f.fun(0)
except 'Zero':
print 'data'
else:
print 'used to testing RAISE function.'

希望高人早日出现指点一二


页首
 用户资料  
 
4 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 19:21 
头像

注册: 2007-03-01 20:46
帖子: 2393
地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
错误已经说的很清楚了啊~~

TypeError: exceptions must be classes or instances, not str

代码:
def fun(n):
    if n==0:
        raise ZeroDivisionError('n is zero')
    else:
        print n

try:
    fun(0)
    except ZeroDivisionError,data:
        print data
    else:
        print 'used to testing RAISE function.'


建议楼主看本更新一点的教材~~


页首
 用户资料  
 
5 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 23:14 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
anticlockwise,我按你的方法试了,没有出现那些错误了,但是用你的方法后还是不能正常运行。
提示说“except”无效,是“invalid syntax”。
但是怎么就无效了?想不通啊。。。。。。。。
我用的Python2.6,看的教材是针对Python2.5的
晕啊~菜鸟一个,希望大侠不吝赐教~拜谢~~~~~


附件:
文件注释: 这是运行时的报错对话框……
except.jpg
except.jpg [ 7.46 KiB | 被浏览 2208 次 ]
页首
 用户资料  
 
6 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 23:27 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
无代码无真相。。。

python 有两个特点,一是升级很快,二是不向后兼容。。


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 23:35 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
代码就是LS的代码啊~~~~
代码:
def fun(n):
    if n==0:
        raise ZeroDivisionError('n is zero')
    else:
        print n

try:
    fun(0)
    except ZeroDivisionError,data:
        print data
    else:
        print 'used to testing RAISE function.'


页首
 用户资料  
 
8 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 23:37 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
缩进不对。。。


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-25 23:48 

注册: 2009-09-17 15:58
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
:em06
顺利解决,菜鸟阶段,勿见笑~
多谢BigSnake.NET~~~~


页首
 用户资料  
 
10 楼 
 文章标题 : Re: Python中raise问题求教
帖子发表于 : 2010-01-26 18:58 
头像

注册: 2007-03-01 20:46
帖子: 2393
地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
缩进不对。。。


感谢猫猫解围,HIAHIA~~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译