Exception 例外及;打断

Exception 例外及;打断,exception,assembly,terminology,interrupt,interrupted-exception,Exception,Assembly,Terminology,Interrupt,Interrupted Exception,当我在寻找异常和中断之间的区别时, 我发现这个问题太 有些答案不合适(至少对于装配级别): “异常是中断的软件版本”但存在软件中断 “中断是异步的,但异常是同步的”是这样吗? “中断经常发生” “中断是硬件实现的陷阱,异常是软件实现的”同上 我需要找出其中一些答案是否正确,如果有人能提供更好的答案,我将不胜感激 谢谢 最常用的异常是编程语言中的一种控制流形式,用于处理程序正常逻辑流之外的事件,以避免程序的业务逻辑淹没在错误处理逻辑中。异常的“处理”是特定于上下文的。对于许多有用的用例来说,它更

当我在寻找异常和中断之间的区别时, 我发现这个问题太

有些答案不合适(至少对于装配级别):

“异常是中断的软件版本”但存在软件中断
“中断是异步的,但异常是同步的”是这样吗?
“中断经常发生”
“中断是硬件实现的陷阱,异常是软件实现的”同上


我需要找出其中一些答案是否正确,如果有人能提供更好的答案,我将不胜感激


谢谢

最常用的异常是编程语言中的一种控制流形式,用于处理程序正常逻辑流之外的事件,以避免程序的业务逻辑淹没在错误处理逻辑中。异常的“处理”是特定于上下文的。对于许多有用的用例来说,它更像是一种GoTo

中断是一种硬件辅助的“陷阱”,在某些事件发生时触发某些动作,如计时器滴答声或程序“调用”INT21。有一个已注册的处理程序,它执行预定义的操作


两者可能是同步的,也可能不是异步的。

最常用的一种例外是编程语言中的一种控制流形式,用于处理程序正常逻辑流之外的事件,以避免程序的业务逻辑淹没在错误处理逻辑中。异常的“处理”是特定于上下文的。对于许多有用的用例来说,它更像是一种GoTo

中断是一种硬件辅助的“陷阱”,在某些事件发生时触发某些动作,如计时器滴答声或程序“调用”INT21。有一个已注册的处理程序,它执行预定义的操作


两者可能是同步的,也可能不是异步的。

中断通常是表示硬件状态变化的一种方法。外围设备将通过电信号连接到中断控制器,中断控制器对每个可能的信号进行优先级排序并分配地址向量。中断控制器将检测到的中断条件转发给CPU,CPU可能会或可能不会“中断”其当前执行状态,以处理信号状态变化(取决于中断是否启用和/或该特定输入是否不可屏蔽)。在某些体系结构上,除了硬件输入外,中断条件还可以由软件启动(例如在x86上有一个int助记符)

异常跨越更大范围的实现。在某些CPU架构(如68K)中,异常可能类似于中断,但由需要处理的某些CPU状态生成。例如,存在生成异常的条件,如被零除、非法指令、I/O总线超时等。通过处理这些异常,我们可以做一些事情,比如模拟指令并虚拟地扩展指令集

异常也可以是一个纯软件的概念,例如C++语言中可以捕获和处理某些错误条件。


因此,一般来说,您试图找到的语句可能是正确的,也可能是错误的,这取决于您应用它们的确切平台。

中断通常是表示硬件状态变化的一种方法。外围设备将通过电信号连接到中断控制器,中断控制器对每个可能的信号进行优先级排序并分配地址向量。中断控制器将检测到的中断条件转发给CPU,CPU可能会或可能不会“中断”其当前执行状态,以处理信号状态变化(取决于中断是否启用和/或该特定输入是否不可屏蔽)。在某些体系结构上,除了硬件输入外,中断条件还可以由软件启动(例如在x86上有一个int助记符)

异常跨越更大范围的实现。在某些CPU架构(如68K)中,异常可能类似于中断,但由需要处理的某些CPU状态生成。例如,存在生成异常的条件,如被零除、非法指令、I/O总线超时等。通过处理这些异常,我们可以做一些事情,比如模拟指令并虚拟地扩展指令集

异常也可以是一个纯软件的概念,例如C++语言中可以捕获和处理某些错误条件。 因此,一般来说,您试图找到其有效性的陈述可能是正确的,也可能是错误的,这取决于您应用它们的确切平台