Python中raise问题求教
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Python中raise问题求教
使用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
调试几次,都是报错,实在没办法,向各位请教了,谢谢大家。
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
调试几次,都是报错,实在没办法,向各位请教了,谢谢大家。
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Re: Python中raise问题求教
各位路过的高人帮帮忙啊~
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Re: Python中raise问题求教
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.'
希望高人早日出现指点一二
修改如下后,不报错,但是运行结果为空。
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.'
希望高人早日出现指点一二
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: Python中raise问题求教
错误已经说的很清楚了啊~~
TypeError: exceptions must be classes or instances, not str
建议楼主看本更新一点的教材~~
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.'
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Re: Python中raise问题求教
anticlockwise,我按你的方法试了,没有出现那些错误了,但是用你的方法后还是不能正常运行。
提示说“except”无效,是“invalid syntax”。
但是怎么就无效了?想不通啊。。。。。。。。
我用的Python2.6,看的教材是针对Python2.5的
晕啊~菜鸟一个,希望大侠不吝赐教~拜谢~~~~~
提示说“except”无效,是“invalid syntax”。
但是怎么就无效了?想不通啊。。。。。。。。
我用的Python2.6,看的教材是针对Python2.5的
晕啊~菜鸟一个,希望大侠不吝赐教~拜谢~~~~~
- 附件
-
- 这是运行时的报错对话框……
- except.jpg (7.46 KiB) 查看 2661 次
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: Python中raise问题求教
无代码无真相。。。
python 有两个特点,一是升级很快,二是不向后兼容。。
python 有两个特点,一是升级很快,二是不向后兼容。。
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Re: Python中raise问题求教
代码就是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.'
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
-
- 帖子: 13
- 注册时间: 2009-09-17 15:58
Re: Python中raise问题求教
顺利解决,菜鸟阶段,勿见笑~
多谢BigSnake.NET~~~~
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: Python中raise问题求教
感谢猫猫解围,HIAHIA~~BigSnake.NET 写了:缩进不对。。。