2005年02月22日 星期二 09:18
ftplib中的all_error是它这个模块所有可能抛出的异常的tuple. 不清楚为什么httplib中没有这个定义,也许httplib与ftplib不是一个人开发的吧,呵呵. 如果你也就是想要all_errors这个定义,照葫芦画瓢,定义自己的all_errors即可. all_error = ( socket.error, IOError, EOFError, httplib.HTTPException, Exception ) 使用: except all_error , msg: print msg 只是这样写好像没有太大的意义,如果你没有必要对异常进行分类处理,就不要区分异常类型了. 使用 因为为了防止遗漏,我还是把 Exception 加入到all_error tuple里了. ----- Original Message ----- From: "cry" <zyqmail at 163.net> To: <python-chinese at lists.python.cn> Sent: Monday, February 21, 2005 7:58 PM Subject: Re: Re: Re:[python-chinese]ÔõôµÃµ½http libµÄÒì³£ÄØ? hw_cg,您好! 谢谢,你这样一说,我清楚了很多。 但是ftplib为什么做了一个all_error,httplib就没有呢? 在 2005-02-21 14:21:00 您写道: >cry: 你好! > >借鉴其他语言的异常思想,不是这样写捕获语句的. >你的捕获机制不完善,导致你漏掉了一些异常. > >建议你的异常捕获象下面这样分级捕获, 每个异常捕获语句仅捕获自己感兴趣的异常, >最后使用Exception捕获所有未拦截的异常. > >import httplib >import socket > >try: > conn = httplib.HTTPConnection("127.0.0.1:8080") > conn.request("GET", "/") > response = conn.getresponse() > result = response.read() > print result > conn.close() > >except socket.error, msg: > print msg > # do something other > >except httplib.HTTPException,msg: > print msg > # do something other > >except Exception, msg: > print msg > # do something other > > > > >----- Original Message ----- >From: "cry" <zyqmail at 163.net> >To: "limodou, python-chinese at lists.python.cn" <limodou at gmail.com,python-chinese at lists.python.cn> >Sent: Monday, February 21, 2005 1:26 PM >Subject: Re: Re: [python-chinese] ???′μ?μ?httplib μ?òì3£??£? > > >limodou,您好! > >直接用except:当然是没有问题,但是我需要错误信息呀,比如: >except error,msg: > > >在 2005-02-21 12:22:00 您写道: >>捕获Exception 不要httplib.HTTPException 试试 >> >> >>On Mon, 21 Feb 2005 12:5:36 +0800, cry <zyqmail at 163.net> wrote: >>> python,您好! >>> >>> 我做了如下的代码: >>> try: >>> conn = httplib.HTTPConnection("192.168.1.103") >>> conn.request("GET", "/") >>> response = conn.getresponse() >>> result = response.read() >>> conn.close() >>> except httplib.HTTPException , msg: >>> print msg >>> >>> 运行后: >>> Traceback (most recent call last): >>> File "", line 3, in ? >>> File "I:\Python23\lib\httplib.py", line 718, in request >>> self._send_request(method, url, body, headers) >>> File "I:\Python23\lib\httplib.py", line 739, in _send_request >>> self.endheaders() >>> File "I:\Python23\lib\httplib.py", line 712, in endheaders >>> self._send_output() >>> File "I:\Python23\lib\httplib.py", line 597, in _send_output >>> self.send(msg) >>> File "I:\Python23\lib\httplib.py", line 564, in send >>> self.connect() >>> File "I:\Python23\lib\httplib.py", line 532, in connect >>> socket.SOCK_STREAM): >>> error: (10060, 'Operation timed out') >>> >>> 错在那里呢?我怎么能控制httplib的exception呢? >>> 我这样处理ftplib就可以。 >>> >>> 谢谢。 >>> >>> 致 >>> 礼! >>> >>> cry >>> zyqmail at 163.net >>> >>> _______________________________________________ >>> python-chinese list >>> python-chinese at lists.python.cn >>> http://python.cn/mailman/listinfo/python-chinese >>> >> >> >>-- >>I like python! >>My Blog: http://www.donews.net/limodou >>New Maillist: http://groups-beta.google.com/group/python-cn >>_______________________________________________ >>python-chinese list >>python-chinese at lists.python.cn >>http://python.cn/mailman/listinfo/python-chinese > > 致 >礼! > > cry > zyqmail at 163.net > > >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese 致 礼! cry zyqmail at 163.net _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese
Zeuux © 2025
京ICP备05028076号