每当我的程序引发未处理的异常时,我想让pydev进入交互式控制台模式,但我不知道如何做到这一点。按照它现在的行为,将报告异常并立即终止进程。
经过一番搜索后,我发现了这个:,它建议使用pydevd.set_pm_excepthook()
但是,当我添加
import pydevd
pydevd.set_pm_excepthook()
对于我的代码,我得到了一个异常:
This function is now replaced by GetGlobalDebugger().setExceptHook and is now controlled by the PyDev UI.')
Dep
在Python中,捕获“所有”异常的最佳方法是什么?
except: # do stuff with sys.exc_info()[1]
except BaseException as exc:
except Exception as exc:
捕获可以在线程中执行。
我的目标是记录普通代码可能抛出的任何异常,而不屏蔽任何特殊的Python异常,例如那些指示进程终止等的异常。
还需要获得异常的句柄(例如通过上面包含exc的子句)。
我在生产中得到了很多这样的警告,但不是在dev堆栈上,这让我好奇地想知道这个警告,以及如何摆脱这个警告。显然,没有进口造成这一问题的信息。
我正在寻找任何工具,文档,解释这个废弃警告时,这将引发异常在未来和步骤,以摆脱这一警告。
谢谢!
[__init__.py:1566] - /edx/app/edxapp/venvs/edxapp/lib/python3.5/site-packages/pkg_resources/__init__.py:1158: DeprecationWarning: Use of .. or absolute path in a resource path is no
我使用python多处理来拆分一个较长的进程并并行运行。它正常工作,除非在其中一个子进程中出现异常,在这种情况下,进程池没有关闭,而且我仍然可以在服务器上看到这些进程。
以下是代码:
from multiprocessing import Pool
pool = Pool(processes=4)
from functools import partial
param_data = "Test Value"
func = partial(test_function, param_data)
r = pool.map(func, range(3))
pool.close()
d
我正在尝试使用apache提供merurial存储库,当我尝试推送到存储库时,我在apache error.log中看到了这一点。在客户端,我得到了一个500错误。
我怎么才能让它消失?
[Sun Jun 06 14:43:25 2010] [error] [client 192.168.1.8] /var/lib/python-support/python2.6/mercurial/hgweb/common.py:24: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
[Sun Ju
我正在编写一个模块,并使用unittest与实际代码一起编写单元测试。
有时(似乎是不确定的),像下面这样的函数不明确地返回一个值,这是在self.assertRaises(mymodule.MyEmptyException, myfunc()) ( self引用unittest.TestCase的子类)中断言的,它会产生一个神秘的DeprecationWarning。
下面是这样一个函数的示例:
def insertn(self, items, lidex):
"""( z y x -- z b y x )
add a list of items to
我正在尝试在Python中实现一个try异常,它在输入char/string而不是int时捕获异常。
但是,当输入字母'a‘时,程序崩溃,返回以下错误:
num = input('Enter integer number: ') File "<string>", line 1, in
<module> NameError: name 'a' is not defined
这是我的代码:
if __name__ == '__main__': #main function
num = i
为什么在尝试抛出自定义异常时需要用try/catch包装抛出的自定义异常,但对于泛型异常不需要这样做?如示例中所示,我的Exception子类:
public class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}
抛出异常:
public class Exe {
private static void testex(String test) {
if (null!=test) {
throw n
假设我有一个代码片段,如下所示
r = requests.post(url, data=values, files=files)
因为这是在发出网络请求,所以可以从这一行抛出一堆异常。为了完整的论证,我也可以让文件读取,发送电子邮件等,以遇到这样的错误,我这样做。
try:
r = requests.post(url, data=values, files=files)
if r.status_code != 200:
raise Exception("Could not post to "+ url)
except Exception as e:
logg
在我设法在高级水平上学习Java之后,我才刚开始学习Python。在带有异常处理的Java输入验证中,异常处理从来都不是一个问题,但在python中,我有点困惑:
这里有一个简单的FizzBuzz程序的例子,它只能读取0到99之间的数字,否则,必须抛出一个异常:
if __name__ == '__main__':
def fizzbuzz(n):
try:
if(0<= n <= 99):
for i in range(n):
if i==0:
我正在尝试引发一个句柄异常,捕获他并再次引发它。问题是,我不能保留该异常,并在捕获异常时导致程序再次停止。
我试过这种方法和其他几种方法,都没有成功。
try:
if not (1 == 2):
raise ValueError("This is my exception")
except Exception as error:
raise ValueError(error) # Trying to throw the previous exception
提前感谢
在以下典型的尝试-除外块中:
try:
do something
except Exception as e:
{clean up resources}
raise e
^
但是,这将打印出一条错误消息,跟踪指向^,与大多数其他语言不同的是,在这里会引发错误,而其他大多数语言都会记住和打印第一次生成e的跟踪。
Python处理异常的方式在找出错误的来源方面造成了很大的困难,我想重写它。有什么简单的方法吗?
我创建了一个小小的python函数,它提供了一个简单的检查:参数n是自然数吗?一般来说,你是如何完成这项检查的?
这是我创建的代码:
def is_natural_number(n, print_err_msg=True):
try:
if not isinstance(n, int):
raise TypeError("Your input is not of integer type.")
if n < 1:
raise ValueError("Your integer i
我写了一个库,有时会引发异常。有一个例外,我想要弃用,我想建议人们停止捕获它们,并在警告消息中提供建议。但是如何让异常在捕获时发出DeprecationWarning呢? 库代码 import warnings
class MyException(ValueError):
...
warnings.warn(
"MyException is deprecated and will soon be replaced by `ValueError`.",
DeprecationWarning,
stacklevel
我使用的是Python 2.7。
基于文档,我找不到在调用ZipFile.open时应该捕获哪个异常。
try:
with zipfile.ZipFile(zip_file_name, "r") as f_handle:
for data_file_name in f_handle.namelist():
try:
with f_handle.open(data_file_name, "rU") as file_obj:
我们在我们的应用程序中使用raven-sentry,我希望有一个默认的'catch all‘额外选项集应用于所有错误。
class StandardError
def raven_context
extra = {}
#add conditional key/values to the hash if they exist
extra[:account_id] = @account.id if @account
extra.empty? ? {} : { extra: extra }
end
end
因为异常是从模型或控制器中的实例化类引发的