【发布时间】:2020-12-17 23:28:06
【问题描述】:
假设我想计算用户输入的一系列数字的二进制值,但我不想限制用户可以输入的数字数量,所以我在 Python 3 中执行此操作:
try:
lst = list()
while True:
n = int(input("Enter the number: "))
b = binary_of(n) // Function to find binary value
lst.append(b)
except:
print("The respective binary values are", '\n')
print(lst)
在上面的代码中,当用户输入一个非整数值时,“try”停止执行,程序移至“except”打印列表,这正是我想要的。
我可以在 C++ 中做类似的事情吗?是否也有 C++ 的“尝试和除外”版本??
【问题讨论】:
-
是的,
c++中有一个 try and catch 版本。 -
是的,它叫做try and catch。但是,对我来说,这是不好的编程习惯。例如,当转换为 int 时出现错误时,您可以中断,而不是无限循环。这也是一般例外(即捕获所有错误)。您不知道异常发生在哪里以及导致异常的原因。例如如果“binary_of”有问题怎么办?
-
您可以捕获不同类型的错误,因此这不是一般问题,但内存可能是个问题。
-
@Danyal 为什么这是一个不好的做法?
int中的错误引发异常。异常打破了循环。不过,except确实是except ValueError。
标签: c++ c++11 exception try-catch