一个Exception catch不住的【异常】
现象:
Controller中的方法接收到前台ajax请求后开始执行,
当执行到某一行时程序终止,前台回调进Error方法。
后台明明catch了Exception异常,但异常并没有被捕获(不进catch)。
检查发现:
方法中引用的一个常量类,没有更新到生产环境。
因为项目处于改造中期,功能没有全部上线,而该常量类又是为新需求定义的,
结果...大家都知道了。
为什么Exception罩不住:
因为这类问题抛出的是 Error。
开发过程中,一般Exception就能罩所有问题,因为有IDE看着场子,编译错误都能及时被发现。
而Error 和 Exception平级,谁也罩不住谁,它们都继承于Throwable。
正常来说,引用一个不存在的类是不能通过编译的,但可以通过欺骗编译器来复现这个问题,
比如通过编译之后删除掉引用类的class文件。
如果用一个Throwable来catch 就会发现:
java.lang.NoClassDefFoundError: demo/DemoConstant
错误 被抓住了。
一个Exception catch不住的【异常】的更多相关文章
- 有关try..catch..finally处理异常的总结
//看一下下面的程序,你能正确的写出不同的testEx2()方法时,程序的最终打印出来的数据吗....先不要看下面的答案 public class ExceptionTest { public Exc ...
- Java如何使用catch来处理异常?
在Java编程中,如何使用catch块来处理异常? 此示例显示如何使用catch来处理异常. package com.yiibai; public class UseOfCatch { public ...
- 异常处理----使用 try…catch…finally 处理异常
使用 try…catch…finally 处理异常 异常处理是通过try-catch-finally语句实现的. try { ...... //可能产生异常的代码 } catch( Exception ...
- Java中Error和Exception的异同以及运行时异常(Runtime exception)与检查型异常(checked exception)的区别
一:Error和Exception的基本概念: 首先Exception和Error都是继承于Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕 ...
- exception catch doesn't work?? (python 3)
exception catch doesn't work?? (python 3) except u.URLError, e: ^ SyntaxError: invalid syntax in Pyt ...
- Allocate exception for servlet ValidateUsernameServlet 异常
如果eclipse无法对类文件进行编译那么运行时就会发生 Allocate exception for servlet ValidateUsernameServlet 异常,说找不到类.
- 如何创建一个可以使用try.....catch.......捕获的异常
代码很简单,大家一看基本上就能明白(有一定的java基础,熟悉try......catch.....finally的使用方法) package com.nokia.test1; public clas ...
- 【M12】了解“抛出一个exception”与“传递一个参数”或“调用一个虚函数”之间的差异
1.方法参数的声明语法和catch语句的语法是一样的,你可能会认为主调方法调用一个方法,并向其传递参数,与抛出一个异常传递到catch语句是一样的,是的,有相同之处,但也有更大的不同. 2.主调方法调 ...
- 一个move_uploaded_file()引起的PHP异常与错误的深入理解
背景:我在公司开发一个产品Excel导入到数据库的功能,写起来挺快的,用phpexcel几下就写好了,本地测试挺顺的,git push上去,项目负责人部署到测试环境,就出现问题了.具体问题一句话不好说 ...
随机推荐
- WPF MVVM架构 EF、WCF、IOC 设计示例经典
概要 该演示项目利用WPF应用程序构建的MVVM架构示例, 运用了Unity容器接口注入, MVVM的经典设计, 后台利用的EF+WCF. 后台实现: 从数据库生成的emdx 结合上下文进行数据交互, ...
- ORA-01031: 权限不足
1.错误描写叙述 ORA-01031: 权限不足 2.错误原因 SQL> create user yhd identified by scott account unlock; create u ...
- [TypeScript] Shallow copy object by using spread opreator
For example we have an object: const todo = { text: "Water the flowers", completed: false, ...
- 安卓View的缓冲机制
View组件显示的内容能够通过cache机制保存为bitmap, 主要有下面方法: void setDrawingCacheEnabled(boolean flag), Bitmap getDr ...
- JavaScript的子集和超集
1.JavaScript子集 JavaScript子集的定义大部分都是出于安全考虑,仅仅有使用这门语言的一个安全的子集编写脚本,才干让代码运行得更安全.更稳定.比方怎样更安全地运行一段由不可信第三方提 ...
- Node.js笔记(九)Nodejs与shell
众所周知.Nodejs是单进程异步执行的.但不光是单进程,Nodejs也提供了多进程方面的支持 其创始人应该还是比較重视这一块的,最有力的证据就是child_process是Nodejs核心模块之中的 ...
- javascript: with 表单验证
<html> <head> <script type="text/javascript"> function validate_required ...
- Redis原理(二)
运维 快照使用子进程是通过一个子进程完成, 它会比较的浪费资源的操作. 1.遍历整个内存,会增加系统负担. 2.io操作,降低redis性能. 一般都是主备,备用的进行持久化. Redis 4.0混合 ...
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇:传递表单数据
摘要 本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET ...
- GIT,SVN,CVS的区别比较
Git .CVS.SVN比较 项目源代码的版本管理工具中,比较常用的主要有:CVS.SVN.Git 和 Mercurial (其中,关于SVN,请参见博客:SVN常用命令 和 SVN服务器配置) 目 ...