词条 异常处理

异常处理

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。

各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。

通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。

从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。

从子程序编程者的视角,异常是很有用的一种机...

异常处理相关文献
血糖异常
度量单位:国际标准单位是毫摩尔/升(mmol/l)。美国采用毫克/分升(mg/dL)。由于葡萄糖分子C6H12O6是180g/mol,所以1mmol/L葡萄糖约等于18mg/dL。&nbs
查看全文
血脂异常
血脂异常除少数是由于全身性疾病所致的继发性血脂异常外,绝大多数是因遗传基因缺陷或与环境因素相互作用引起的原发性血脂异常。1.遗传因素原发性血脂异常是由遗传基因缺陷或与环境因素相互作用引起。2.生活方式包括暴饮暴食、嗜酒、偏食、饮食不规律等不良饮食习惯及缺乏体力活动、精神紧张、生活不规律等。3.药物作用长期服用某种药物,如噻嗪类利尿剂、β受体阻滞剂、肾上腺皮质激素、口服避孕药等。4.继发性因素由于各种疾病继发引起的,如糖尿病、甲状腺功能减退、肾病综合征、肾移植、胆道阻塞等。主要分类:继发性高脂血症指由于全身系统性疾病所引起的血脂异常。可引起血脂升高的系统性疾病主要有糖尿病、肾病综合征、甲状腺功能减退症,其他疾病有肾功能衰竭、肝脏疾病、系统性红斑狼疮、糖原累积症、骨髓瘤、脂肪萎缩症、急性卟啉病、多囊卵巢综合征等。此外,某些药物如利尿剂、β受体阻滞剂、糖皮质激素等也可能引起继发性血脂升高。原发性...
查看全文
异常磁矩
电子对费米子磁矩的单循环修正异常磁矩的单循环修正对应最早且最大的量子力学修正,而电子的异常磁矩单循环修正可由右图顶点函数(英语:Vertexfunction)的计算所得。这个计算还是相对地直接的,单循环结果为:其中α为精细结构常数。这个结果最早由朱利安·施温格于1948年得出,而这个数也被铭刻在他的墓碑之上。电子异常磁矩的量子电动力学公式系数的计算到2009年已经用到α,而且已知解析值已逹到α。量子电动力学的预测值与实验观测值在超过10位有效数字时仍然一致,因此电子异常磁矩是物理学史上确认准确性最高的常数。现时的实验与误差为:根据以上的数值,a的已知准确度大概为十亿分之一(10)。要达到这样的准确度,量度g时的准确度需达千亿分之一(10)。μ子μ子g-2的单循环最小超对称标准模型(英语:MinimalSupersymmetricStandardModel)修正,分别内含超中性子和超μ子(左...
查看全文
异常处理
异常安全一段代码是异常安全的,如果这段代码运行时的失败不会产生有害后果,如内存泄露、存储数据混淆、或无效的输出。异常安全可分成不同层次:失败透明(failuretransparency),也称作不抛出保证(nothrowguarantee):代码的运行保证能成功并满足所有的约束条件,即使存在异常情况。如果出现了异常,将不会对外进一步抛出该异常。(异常安全的最好的层次)提交或卷回的语义(commitorrollbacksemantics),或称作强异常安全(strongexceptionsafety)或无变化保证(no-changeguarantee):运行可以是失败,但失败的运行保证不会有负效应,因此所有涉及的数据都保持代码运行前的初始值。基本异常安全(basicexceptionsafety):失败运行的已执行的操作可能引起了副作用,但会保证状态不变。所有存储数据保持有效值,即使这些数据...
查看全文
重力异常
大地测量与地球物理学在大地测量和地球物理学中,最常见的理论模型是椭球表面重力(英语:WGS84#WGS84)。为理解源于地下的重力异常,应做一些必要的还原以测量重力值:除去理论重力只留下当地影响值。每个重力测量点的海拔值要还原至相关基准以便进行整体数据比对,这是地表修正(Free-airCorrection),加上已除去理论值的重力观测值便是地表异常(free-airanomaly)。正常的重力梯度(重力海拔变化率),如地表通常为0.3086伽/米(mGal/m),或考虑该点下面岩石平均密度(2.67g/cm³)的布格梯度(Bouguergradient)为0.1967伽/米(mGal/m,19.67µm/(s²·m)),该数值源于重力减布格板块密度0.1119伽/米(mGal/m,11.19µm/(s²·m))。简言之,要做重力测量与大地水准面之间实质影响的修正。这样我们构建这两个值的模...
查看全文
异常处理相关标签
软件工程
控制流程
学科&术语