当前位置: 首页 > 面试题库 >

在python中捕获特定的HTTP错误

司寇祖鹤
2023-03-14
问题内容

我想捕获一个特定的http错误,而不是整个家庭中的任何一个..我想做的是-

import urllib2
try:
   urllib2.urlopen("some url")
except urllib2.HTTPError:
   <whatever>

但是我最终捕获的是任何一种HTTP错误,但是我只想在指定的网页不存在的情况下捕获!可能是HTTP错误404
..但我不知道如何指定仅捕获错误404并让系统为其他事件运行默认处理程序。


问题答案:

Python 3

from urllib.error import HTTPError

Python 2

from urllib2 import HTTPError

只是捕获HTTPError,处理它,如果不是Error 404,只需使用raise引发该异常即可。

请参阅Python教程。

例如Pyhton 2的完整示例

import urllib2
from urllib2 import HTTPError
try:
   urllib2.urlopen("some url")
except HTTPError as err:
   if err.code == 404:
       <whatever>
   else:
       raise


 类似资料:
  • 需要捕获python中HTTP错误的响应主体。当前正在使用python请求模块的raise_for_status()。此方法仅返回状态代码和说明。需要一种方法来捕获响应主体以获取详细的错误日志。 如果在某些不同的模块中存在类似的必需特性,请建议python请求模块的替代方案。如果没有,请建议可以对现有代码进行哪些更改以捕获所述响应主体。 当前实现仅包含以下内容:

  • 问题内容: 我想捕获一个特定的ValueError,而不仅仅是任何ValueError。 我试过这样的事情: 但这会引发SyntaxError:无法分配给文字。 然后我尝试了: 但这引发了例外,即使这是我要避免的例外。 问题答案: 在,是例外,而不是字符串的实例。因此,当您测试不等于特定字符串时,该测试始终为False。尝试: 代替。 例: 通常,如果可以帮助您,您并不是真的希望依赖于错误消息-这

  • 问题内容: 我在Python中构建了一个简短的url转换器引擎,并且看到大量的“管道破损”错误,并且很好奇在使用BaseHTTPServer类时如何最好地捕获它。这不是全部代码,但可以让您大致了解我目前正在做什么: 该代码本身运行良好,但是在生产中几乎立即开始引发错误: 这些错误的大部分似乎源于在调用send_header()方法时遇到的问题,其中我要写的是: 所以我很好奇在我的代码中尝试捕获此I

  • 问题内容: 说我有以下 遇到SpecificException会发生什么?它是否首先将其捕获为通用异常,然后捕获特定异常? 还是只在忽略通用异常的同时捕获SpecificException。 我不希望泛型和特殊异常都被捕获。 问题答案: 否。所有异常都将被第一个块捕获。第二个将永远不会到达(编译器会识别出来,由于代码无法到达而导致错误)。如果要特别对待,则必须采用另一种方法: 然后,第一个块将捕获

  • 问题内容: 我正在读一本书,叫做《 Pro Angular JS》。但是,我有一个关于如何捕获错误状态的问题。 我编码的是: 如果我编写代码“ console.log($ scope.data.error.status);” ,为什么console.log的参数未定义? 这本书中有一句话,“传递给错误函数的对象定义了状态和消息属性。” 所以我做了$ scope.data.error.status

  • 我不知道我对Laravel 5.3项目做了什么,但我有这个错误: 致命错误:未捕获的ReflectionException:Class App\Http\Kernel在C:\laragon\www\BookTime\vendor\laravel\framework\src\light\Container\Container中不存在。php:729堆栈跟踪:#0 C:\laragon\www\Boo