问题
单项选择题
若程序运行时系统报告除数为0,这属于()错误。
A.语法
B.静态语义
C.动态语义
D.运算对象不匹配
答案
参考答案:C
解析:
在程序执行期间,会有许多意外的事件发生。例如,程序申请内存时没有申请到、对象还未创建就被使用、死循环等,称为运行错误。根据错误的性质将运行错误分为错误与异常两种类型。程序进入了死循环或内存溢出,这类现象称为错误或致命性错误。错误只能在编程阶段解决,运行时程序本身无法解决,只能依靠其他程序干预,否则会一直处于一种不正常的状态。运算时除数为0,或操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断等,这类运行错误现象称为异常。对于异常情况,可在源程序中加入异常处理代码,当程序出现异常时,由异常处理代码调整程序运行流程,使程序仍可正常运行直到正常结束。由于异常是可以检测和处理的,所以产生了相应的异常处理机制。而错误处理一般由系统承担。对于一个应用软件,异常处理机制是不可缺少的。
该题中出现的是语义错误,但不是编译的时候出现的,是运行的时候出现的,所以是动态语义错误。