异常是什么

前言

我们经常把程序运行过程的产生的错误称为异常,而这种错误是建立在程序本身编码是正确的前提条件下。

1、异常是什么?

指程序运行阶段发生的错误,不是编码阶段语法错误。

打开操作系统附带的计算器软件,输入1/0,计算器提示错误:除数不能为零。
在这里插入图片描述
我们分析一下:

1. 计算器的计算功能是正确。(程序编码是正确的)

2. 计算器不能限制用户输入,用户输入:1/0。(不能阻止异常,发生异常)

3. 用户不按照约定操作,计算器不会把式子传入内部,而是提示用户错误。(处理异常)

异常是程序运行过程的产生的错误,这要区别不是语法错误。

我们可以看出程序正常工作严格来说应该包括:一是编码是正确的,二是用户(人或者其他程序)正常调用程序。

按照不同的阶段错误分两种:一种是编码阶段的错误,大多来自编码语法错误;另外一种不正常调用程序产生的错误,而这种错误我们称之为异常
你可以简单理解,异常不是来自编码阶段,而是调用程序阶段。

2、异常的机制

异常机制让程序只做能做的事情,凡是处理过程出现错误都抛出异常,让用户来处理修正这个错误。是我们人类习惯做法,不是发明出来机制。

异常机制主要是为了保护程序的正常运行,而不惜抛出一个错误给用户。

我们再举个例子

在学校饭堂有一个打饭窗口,负责打饭的阿姨给每一个到窗口的人打饭。(程序编码是正确的)
你到打饭窗口要求打一份菜。(不能阻止异常,且发生异常)
阿姨跟你说这里不提供打菜服务,打菜在另外一个窗口。(处理异常)

处理方式结果
不处理异常饭堂阿姨直接崩溃了或者阿姨没发现有菜间接崩溃了。
不处理异常阿姨没给你打菜,而是给你打了饭。(按照既定功能执行,程序正常运行但是给了错误结果)
处理异常叫你滚,然后叫下一个。(处理异常但不提示错误,忽略错误保证程序正常)
处理异常跟你说这里不提供打菜服务,打菜在另外一个窗口。

异常通常是用户没有按照约定规则产生错误。
通常处理方式是向用户反馈这个异常,让用户处理,目的是让用户修正这个错误。
在打饭的窗口打菜,这个是你的问题,而不是阿姨的问题,最好处理就是告诉你这里不能打菜。

3、异常处理方式通常是抛出异常。

例外是堵不住,最好做法就是当程序处理不了就把所有错误反馈给用户。
用户规范操作才是解决问题根源。
异常处理机制有点像保护机制,异常很多,我们很难知道所有例外情况并一一处理。
就像阿姨不可能知道所有情况,通常不合理,最好的做法是不打饭并提示正确操作。

序号异常情况
1比如你没拿饭盆打算用手来接饭
2比如你到窗口问路
3比如你站很远时候
4比如你要1000斤的饭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值