我的代码试图做些什么,但它触发了一个错误.这引发了另一个错误。因此,错误消息如下所示:
SillyError: you can`t do that becuz blablabla
The above exception was the direct cause of the following exception:
LoopyError: you can`t do that becuz blobloblo
我想创建一个try except块,它只捕获这两个特定的错误。然而,我只能抓住第一个,因为一旦我抓住了,第二个就没有机会触发。
是关于捕获任何一个异常的,但我只想在连续触发这两个异常的
在以下代码中,
def func():
try:
try: # No changes to be made here
x = 2/0 # No changes to be made here
except ZeroDivisionError: # No changes to be made here
print "Division by zero is not possible" #
我想通过RSpec测试在下面的Ruby代码中是否发生了预期的异常处理。通过测试,我意识到在挽救异常之后,我不能使用raise_error匹配器来测试是否引发异常。
因此,现在我想测试是否创建了CustomError和StandardError对象,以查看是否按预期引发了错误。
test.rb
module TestModule
class Test
class CustomError < StandardError
end
def self.func(arg1, arg2)
raise CustomError, 'Inside Custo
有没有办法在发生异常后停止一切?
例如,我正在创建一个反向波兰语表示法计算器(学习后缀),我想确保如果字符串中有"0“,就会打印出"Cannot divide by zero”。
我使用try/except让它做我想做的事情。
我尝试在异常中的print语句后添加"break“,但这显然没有帮助,因为我的最后一个"pop”在循环之外。这导致了一堆回溯错误,因为显然没有执行“除以零”操作,列表变得混乱。
有什么想法吗?
def RPN(ll):
mys = Stack()
for x in ll:
if x == '+
我有一些RSpec的代码。我的(或不属于我的)类可以(或不)调用特定的异常。例,类::Foo::Bar::TimeOutError。我要检查一下。
describe :describe_description do
before :all do
object = Class.new
# method can be call Class::Foo::Bar::TimeOutError
object.method
end
it :exception do
expect {}.to_not raise_error Class::Foo::Bar::Time
当我创建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
我期望开始救援将比率设置为零,但相反,它被设置为NaN,这是令人难以置信的沮丧,当我拯救错误,以提供一个默认值。
ratio = begin
0.0 / 0.0
rescue ZeroDivisionError
0
end
ratio = 0 if ratio.nan?
我想要删除的代码是ratio = 0 if ratio.nan?,为什么需要这样做?
编辑新代码如下:
ratio = bet_money_amount_cents.to_f / total_amount.to_f
rat
有没有方法在python中引发多个异常?在下面的示例中,只引发第一个异常。
l = [0]
try:
1 / 0
except ZeroDivisionError as e:
raise Exception('zero division error') from e
try:
l[1]
except IndexError as e:
raise Exception('Index out of range') from e
还有别的办法吗?
我正在尝试处理除block之外的多个相同的错误。我有2个函数,如果第一个块出现错误,我在除第一个块之外的块中运行第二个函数。 我试着按照许多帖子的建议提出了异常,但没有任何帮助。我正在写一个简单的代码,在某种程度上类似于运行多个函数。如果失败,我如何尝试10/0,尝试20/0,如果我们得到错误,则转到除块之外的最后一个? try:
d =10/0
except ZeroDivisionError as e :
d=20/0
except ZeroDivisionError as f:
print("yes") 根据上面的代码,我期望的结果是"
我正在python上测试服务器差异。当我只使用一台服务器进行测试时,我得到了错误。有没有办法尝试/捕获这个问题:
# Discrepancy = abs(this server's difference - average of differences of all the other servers
for server in server_time_differences:
discrepancies[server] = abs(server_time_differences[server] - calc_average(server))
这是我得到的错误:
discre
如果我有一个1/0表达式,很明显,它会出现错误:
try:
1/0
except ZeroDivisionError as err:
print(err) # this prints: division by zero
第二次尝试用1/0代替raise ZeroDivisionError.
try:
raise ZeroDivisionError
except ZeroDivisionError as err:
print(err) # this prints: (nothing
在python3中引入了一个新特性-异常链接。出于某些原因,我需要在代码中的某些异常情况下禁用它。
下面是示例代码:
try:
print(10/0)
except ZeroDivisionError as e:
sys.exc_info()
raise AssertionError(str(e))
我看到的是:
Traceback (most recent call last):
File "draft.py", line 19, in main
print(10/0)
ZeroDivisionError: division by zero
描述:(简化)
I有2项任务,在每项任务中有3项协同,2来自第一项任务的协同失败。(simulated)While处理任务结果,我收到一条“任务异常从未被检索”的消息。--我相信这是因为该任务中的两个失败的协同线中只有一个是processed.How,难道我在任务中处理两个协同项的异常和/或避免“任务异常从未被检索”消息?
代码:(简化)
import asyncio
async def download(data):
filename = "*" if data in ["b", "c"] else data # simulated
我很难理解rspec是如何处理异常的。在这种情况下,我希望确保异常被正确捕获并以格式化消息的形式返回。 请考虑以下几点: class Sample
def calculate(x, y)
begin
add(x,y)
rescue Exception => e
return "Exception occured: #{e}"
end
end
def add(x, y)
x + y
end
end 使用类似如下的规范: describe "sample" do
it
在我看来,failure.trap方法似乎产生了无法用try/except块捕获的异常。
from twisted.internet import defer
def someAsynchronousMethod(_):
print 'I am an asynchronous method and I raise a ZeroDivisionError!!!'
raise ZeroDivisionError
def __errorHandler(failure):
print 'I am __errorHandler number 1 !!
读着这本书,我试图理解一些东西。在这个try and because子句中,我被告知将会引发异常,因为变量C没有定义,但它看起来像是定义了变量。是不是因为try/except子句?看起来C的值应该是“我永远不会被定义”。
try:
10 / 0
c = "I will never get defined."
except ZeroDivisionError:
print(c)