相关疑难解决方法(0)

嵌入式C++:使用异常与否?

我意识到这可能是主观的,所以会问一个具体的问题,但首先,背景:

我一直是一名嵌入式软件工程师,但通常在OSI堆栈的第3层或第2层.我不是一个硬件家伙.我一般都经常使用电信产品,通常是手机/手机,这通常意味着像ARM 7处理器.

现在我发现自己处于一个更通用的嵌入式世界中,在一个小型的初创公司中,我可能会转向"不那么强大"的处理器(这是主观位) - 我无法预测哪个.

我已经阅读了很多关于嵌入式系统中C++异常处理的争论,并没有明确的答案.有一些关于可移植性的小担忧和一些关于运行时的担忧,但它似乎主要归结为代码大小(或者我正在阅读错误的辩论?).

现在我必须决定是否使用或放弃异常处理 - 对于整个公司,永远(它将进入一些非常核心的s/w).

这可能听起来像"一根绳子有多长",但有人可能会回答"如果你的琴弦是8051,那就不要.如果,OTOH,那就是......".

我跳哪个方向?超级安全,失去一个好的功能,或特殊的代码,可能会在以后遇到问题?

c++ embedded exception-handling exception

40
推荐指数
3
解决办法
1万
查看次数

在 Ada 中使用异常

我正在寻找风格指导。在 Python 中,异常被用作“正常”操作:

try:
    z = x/y
except ZeroDivisionError:
    z = 73.0    # set z if y is zero
Run Code Online (Sandbox Code Playgroud)

我们不是检查 y 是否接近零,而是进行除法并捕获异常。

这种类型的方法在 John Barnes 的“Programming in Ada 2012”中的 Ada 中有说明:

begin
    Tomorrow := Day'Succ(Today);
exception
    when Constraint_Error =>
        Tomorrow := Day'First;
Run Code Online (Sandbox Code Playgroud)

但是,这本书接着说“这是一个非常糟糕的例子。异常应该用于很少发生的情况......”。

我是 Ada 的新手,像我们在 Python 中所做的那样,使用异常来避免 if 语句是一种好的 Ada 编程风格吗?或者异常真的只是在 Ada 中用于令人讨厌的事情?

ada

6
推荐指数
2
解决办法
435
查看次数

标签 统计

ada ×1

c++ ×1

embedded ×1

exception ×1

exception-handling ×1