异常处理的最终总结

不考虑异常,一个程序能够不出错地运行,就已经是很完美的了。因为异常是超出逻辑,不可预知的情况,它的出现应该是一种不合理,破坏程序本身逻辑的(和前一篇文章说的一样,函数返回值false/true,状态-1,0,1之类的,在设计逻辑之内,不算是异常),有这么几种处理方式:

1.不处理,只是报错:早发现,早治疗,不合理的就应该立马解决了,省得导致能严重的问题。缺点是,程序可以会崩溃,给用户带来不好的影响,特别是服务器,影响更大。

2.水平不够时:和1的处理方式一样,否则可能导致掩盖了问题,以后出现更严重问题时,根本不知道从何查起。

3.水平足够:可以考虑进行异常处理,但是必须把每个异常都处理好,设置严重等级,终止、上报、记录等。好处是定位、可控、不让程序直接挂掉。

4.高手:随心所欲,无法理解。

时间: 2024-11-06 12:12:51

异常处理的最终总结的相关文章

Bypassing PatchGuard on Windows x64

[说明] 1.  本文是意译,加之本人英文水平有限.windows底层技术属菜鸟级别,本文与原文存在一定误差,请多包涵. 2.  由于内容较多,从word拷贝过来排版就乱了.故你也可以下载附件. 3.  如有不明白的地方,各位雪友可通过附件中的联系方式联系我,同时建议各位参照原文阅读...... [64位windows系统的PatchGuard] 原文:Bypassing PatchGuard on Windows x64.pdf 关于windows x64上的PatchGuard是干什么用的,

再学try-catch

一段代码会在出错的时候"死掉"(停止执行)并在控制台将异常打印出来. try..catch,它会在捕捉到异常的同时不会使得代码停止执行而是可以做一些更为合理的操作,提供异常处理. 基本结构 try { ... 尝试执行的代码 ... } catch(e) { // 如果发生异常,跳到这里 ... 异常处理 ... } finally { ... 最终会执行的代码 ... } try try..catch only works for runtime errors try-catch不能

springboot全局异常拦截源码解读

在springboot中我们可以通过注解@ControllerAdvice来声明一个异常拦截类,通过@ExceptionHandler获取拦截类抛出来的具体异常类,我们可以通过阅读源码并debug去解读springboot的异常拦截机制. 在了解异常拦截机制之前,我引用他人图片大致介绍下springmvc的大致调用流程 异常拦截处理流程: 1. 首先会调用DispatcherServlet的doDispatch分发请求 2. 通过processDispatchResult方法处理分发结果 3.

详解Linux内核异常处理体系结构

本节内容:Linux内核异常处理的的初始化过程和异常发生时的处理流程. [首先来区分一下两个概念:中断(Interrupt)和异常(Exception).中断属于异常的一种,就拿2440开发板来说,他有60多种中断源,例如来自DMA控制器.UART.IIC和外部中断等.2440有一个专门的中断控制器来处理这些中断,中断控制器在接收到这些中断信号之后就需要ARM920T进入IRQ或FIQ模式进行处理,这两种模式也是中断异常的仅有模式.而异常的概念要广的多,它包括复位.未定义指令.软中断.IRQ等等

深入理解Java异常处理机制

1. 引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中的那么简单.听话.不信?那你看看下面的代码,"猜猜"它执行后的结果会是什么?不要往后看答案.也不许执行代码看真正答案哦.如果你的答案是正确,那么这篇文章你就不用浪费时间看啦. <span style="background-color: rgb(255, 255, 255

项目中java异常处理

一.java异常类介绍. Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类. 有一篇比较好的blog,http://blog.csdn.net/hguisu/article/details/6155636 介绍java异常. 二.异常处理方式. 在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常. 三.程序中使用. 2种处理方式 1.throw new 异常  在方法体上写throws

Java之异常处理机制

来源:深入理解java异常处理机制 2.Java异常    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常.因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件.当条件生成时,错误将引发异常. Java异常类层次结构图: 图1 Java异常类层次结构图 在 Java 中,所有的异常都有一个共同的祖先 Th

Web API系列(三) 异常处理

在上一篇教程中我为大家介绍了Web API中Filter的开发使用,其中讲到ExceptionFilter时留了一个坑:ExceptionFilter只能截获并处理Action执行过程中发生的异常,在Action执行过程之外如果出现异常,ExceptionFilter是无能为力的. 这些异常包括: 1.  Controller构造方法中出现的异常 2.  MessageHandlers中出现的异常 3.  路由过程中出现的异常 4.  Body在序列化/反序列化过程中出现的异常 由此可以看出,E

基于返回值的错误处理与异常处理机制

基于返回的错误处理和异常处理机制的比较 一.基于返回值的错误处理机制 对于传统的面向过程语言比如说C语言,通常使用基于返回值的错误处理机制,即通过在程序中定义程序出错时的返回值,比如说0代表操作成功,而1代表操作失败. 这种错误处理机制的好处在于有时候即使出现了异常程序或许也可以继续执行(但是最终执行结果或许不对,而这就导致查错比较困难,因为有时候仅仅通过函数返回值我们并不知道程序出错的原因究竟是什么,比如说程序操作失败返回值为0,我们在控制台上看到程序输出为0,但是除此之外没有其他额外的信息帮