当我创建try时-除了在一个类中出现错误:(在类中创建基于用户的异常的原因是,当需要时,我可以在任何函数中重用异常,并且我可以引发错误) class Error(Exception):
pass
class ValueTooSmallError(Error):
pass
class ValueTooLargeError(Error):
pass
import random
class GuessNum(object):
try:
def __init__(self):
self.number = random
我可以有这样的密码:
def sum(a, b):
return a + b
# User chooses function and parameters
function = sum
params = {"a": 5, "b": 3}
try:
ret = sum(**params)
print(ret)
except TypeError:
# Function called with bad signature
print("Wrong parameters for the chosen function!
我在试着做一些有点奇怪的事。我希望在Python中保存一个堆栈跟踪,然后当我在后面的某一行抛出异常时,我希望该异常具有我先前保存的堆栈跟踪,而不是默认的回溯。我试图给人一种错觉,错误是从不同的行抛出的,而不是实际抛出的。 更具体地说,我希望能够这样做 class Pipeline:
def __init__(self):
saved_traceback = None
def m1(self):
# ... Do some work ....
saved_traceback = save_traceback()
我正在写一个捕获错误(或异常)的小脚本。但当异常发生时,我想要所有的信息,如回溯,异常名称和异常消息。如果异常没有被捕获,但以下代码不应该受到影响,它也应该执行(i.d,错误应该出现,但脚本不会停止工作)。
例如:在下面的代码中将抛出一个异常。如果发生这种情况(只有在发生的情况下),我想进行“清理”。
try:
1 / 0
except Exception as e:
# Printing the Exception like it would have been done if the exception hadn't been caught:
# Trace
如何处理python库请求的异常?例如,如何检查PC是否已连接到互联网?
当我尝试的时候
try:
requests.get('http://www.google.com')
except ConnectionError:
# handle the exception
出现错误: name ConnectionError is name
我知道使用try...except语句可以忽略Python中的异常。在Python中出现异常,但仍然打印异常时,是否可以忽略它们?
我试图在这里忽略该异常,因此,当遇到异常时,不会打印该异常:
try:
num = 0
if num == 0:
raise Exception("Num must not be 0!")
except Exception:
pass
'''The exception is ignored, and is not printed.'''
我编写了一个简单
背景
我继承了一个包含大量try ... except:子句的代码库。它们中的大多数都太宽泛了,调试起来很痛苦。我一直在浏览并将每一种形式更改为最合理的形式,这通常涉及删除它或指定异常。
问题
但我对这件事有点困惑:
try:
with open(self.session_filename, "rb") as f:
data = cPickle.loads(zlib.decompress(f.read()))
except:
# we didn't need your file anyway!
return
我想专门处理这些异常,
今天早些时候,我在上询问了一位高代表用户的评论,他建议最好将try/finally和try/except的顺序互换一下。
因此,不是这样:
try
try
//some code
//something that throws an exception, eg: EIndexOutOfRangeException
//more code
except on E : EIndexOutOfRangeException do begin .... end;
finally
// some cleanup code
end;
它将try/finally嵌套在内部
我想在一个函数中引发一个异常,然后在其他地方(在Django视图和我的单元测试中)检查它是否被引发。下面的代码使用了状态代码,并且可以正常工作。但我不知道如何在例外情况下做同样的事情--似乎每个人都同意,这是做这类事情的正确方式。
使用自定义错误消息对我来说很重要。不是打印它们,而是在代码中检测和使用它们(主要是用Django消息将它们转发给最终用户)。
如果utils.add_foo中出现异常,我不知道如何签入add_foo_view。
在单元测试中,我尝试了像(Warning, 'blah went wrong')这样的东西,但这并没有费心检查消息是否实际上是相同的。
vi
我对Perl很熟悉,对Python也很陌生。我知道在Perl中,fd.close()并不是无关紧要的。写入完整的文件系统时,close()将报告错误。对于套接字错误,它们也出现在close()中。那么,在Python中如何处理呢?一些示例显示,将open()和close()放在相同的try块中,这两个块都会捕获IOError。但其他示例显示了file块中的close(),以便在异常情况下关闭文件。但是,如果异常首先发生在close()中怎么办?
这包括这两个要求吗?(1)总是关闭文件(2)捕获所有IO异常?
try:
with open(FILE, 'w') as fd
我有一个脚本,它使用软件包pygsheets将一个数据文件上传到Google。如果dataframe为空,则会出现以下错误:
InvalidArgumentValue: provide either cells or values, not both
因此,我一直试图在数据文件为空时使用try-除了结构来传递,但是如果发生任何其他错误,则会引发异常。守则如下:
try:
pygsheets code
except InvalidArgumentValue:
pass
except:
raise Exception
但是,当我试图执行上面的行时,它会抛出以下错误:
Nam
我正在尝试在Try块中执行一些语句。我正在调用一个API并执行一些操作。有一个特定的操作会导致RuntimeError在运行程序时出现puked,尽管我捕捉到了一个异常。我该如何避免从Try块中产生的错误?
try:
call API and perform some tasks.
encounters an error here
Except RunTimeError as ex:
print(ex)
我有一系列嵌套生成器,我想从第一个生成器了解用户代码中是否出现异常,为了一个示例,请考虑下面的代码:
#############################################################################
def generator():
try:
for i in (1, 2, 3, 4, 5, 6):
print(f"Generator: {i}.")
yield i
except:
print("Exception h
我循环一个货币列表,以便从API下载价格系列,其中一些货币不受支持,从而引发一个模块定义的异常类:ExchangeError: This currency pair is not supported。
当它发生时,我想继续循环到下一个货币,但是由于某种原因,我无法处理模块异常。
下面是一个在内置例外情况下运行良好的示例:
f = [1,2,3,4,'A',5]
def foo(nb):
return nb /2
for i in f :
try:
print(foo(i))
except TypeError :
c
try-except序列中的异常块应该只针对那些可能起源于try的异常吗?或者,它们是否包括在处理捕获的原始异常时可能出现的异常?
我现在有一个函数,它有一个try- data块来编写一些数据到文件中。当满足特定大小的异常(意味着该文件的最大大小)时,写入失败(正如它应该的那样),将捕获该异常,并尝试创建一个新文件;如果成功,则再次发生写入尝试,并因创建失败而捕获异常。
此构造如下(伪):
file_error = False
while not file_error:
written = False
while not written and not file_error:
我希望找到一种方法来测试我的代码是否通过pytest为给定的错误返回正确的错误消息 我的代码在字典上工作,在某些情况下,一些键可能是未定义的。在下面的示例中,tag变量由用户提供,在某些情况下,该键可以是未定义的。然后,我添加了一条try/except语句来捕获此异常,并向用户返回一条错误消息,解释该问题。 try:
species = self.species[tag]
except KeyError:
print(f"Error: the species {tag} is not defined") 我的问题是在尝试为这段代码编写单元测试时出现的。如何检查
我知道raise ... from None,也读过。
但是,如果不控制从except子句执行的代码,我如何才能达到同样的效果(在处理上述异常期间,发生了另一个异常“消息)?我认为可以使用sys.exc_clear(),但是在Python3中不存在这个函数。
我为什么要问这个?我有一些简单的缓存代码,类似于(简化):
try:
value = cache_dict[key]
except KeyError:
value = some_api.get_the_value_via_web_service_call(key)
cache_dict[key] = value
当
我有一个检查文件权限的try except块,当文件权限太开放时,我的except块应该返回适当的错误消息。
if oct(os.stat(self.file_path).st_mode & 0o700):
try:
# do something with file path
except MyError as err:
return {'1': 'Permissions on the .bsm file is too opened'}
我尝试搜索IOError,但我发现它与我的用例不太相关,并且我定义的M