异常

springMVC异常统一处理

♀尐吖头ヾ 提交于 2021-02-09 11:36:28
SpringMVC 提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异 常的Controller——ExceptionHandler。前者当发生异常时,页面会跳到指定的错误页面,后者同样,只是后者会在每个 controller中都需要加入重复的代码。如何进行简单地统一配置异常,使得发生普通错误指定到固定的页面,ajax发生错直接通过js获取,展现给 用户,变得非常重要。下面先介绍下2种异常处理方式,同时,结合现有的代码,让其支持ajax方式,实现spring MVC web系统的异常统一处理。 1、实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接 口,springMVC本身已经对其有了一个自身的实现——DefaultExceptionResolver,该解析器只是对其中的一些比较典型的异常 进行了拦截处理 。 Java代码 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet

系统异常设计规范与原则

老子叫甜甜 提交于 2020-03-02 04:37:11
1.系统异常设计的出发点: 良好的异常信息展示,开发运维人员能快速定位问题。 响应外部调用异常时,应能明确指明是内部异常还是调用条件不满足导至。 响应用户操作异常时,能友好的提示用户。 如何做到以上3点? 1.1 首先我们需要对异常进行分类。 内部异常 资源环境导致(系统环境异常、数据库连接超时、第三方服务响应超时) 第三方服务错误响应 第三方响应结果错误 外部传入参数非法 错误的编码逻辑 错误的配置 异常的业务数据(业务数据缺失) 业务异常 用户操作错误 业务条件不满足 1.2 其次需要在系统中正确的捕获这类异常,并抛出。 方法入参进行合法性验证。 对系统外部提供的接口,是必须要进行参数验证(必须) 系统内部对外外层提供接口,进行验证 工具类进行参数验证 public 方法要进行验证 private 方法(不建议参数验证) 第三方响应结果合法性验证。 获取第三方法结果后,根据你们的约定进行验证。 业务处理前,对业务业务前置条件进行验证。 业务处理前,验证业务条件(验证佘额、验证这个帐户有没有被公安门锁定) 要考虑性能成本(验证身份证号码是不是存在的) 业务处理后,对处理结果进行验证。 验证对方帐户是不是到帐了,转出帐户是不是成功扣款 对于可能会出现异常的代码进行 try catch 捕获。 尝试恢复处理 直接抛出 转换后抛出 1.3 最后 在系统出口统一拦截处理。

win7下修复程序图标显示异常

僤鯓⒐⒋嵵緔 提交于 2020-02-29 12:45:20
图标缓存,即Windows系统为软件图标所建立的一个图标缓冲区。当图标有所更改的时候系统会将新的图标自动写入缓冲区从而使下次重启电脑时图标不会恢复原样。 1、对于win7旗舰版用户,可通过在“个性化”中简单地更换主题来刷新图标缓存; 2、win7家庭普通版(Home Basic)在控制面板中选择“更改桌面图标”,还原默认值; 3、图标异常的修复( 推荐采用 ) 打开任务管理器并结束进程explorer.exe;使用winrar,好压等工具打开目录—%userprofile%\appdata\local\,找到图标缓存文件IconCache.db并删除;任务管理器“新任务”输入explorer.exe;查看是否恢复正常。 win7系统 中图标缓存文件是:%userprofile%\AppData\Local\IconCache.db,可以更改缓存大小以适应(桌面)图标的数量。在注册表中找到以下项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer,在其右侧窗格中新建名为“Max Cached Icons”的字符串值,并设为“2048“(2048表示占内存2M,最大只能设置为8192),重启电脑即可生效。 ”图标缓存出现问题是不可避免的,出现问题不可怕,只要我们学会如何解决问题就好

Python开发环境Wing IDE调试进程异常报告简析

江枫思渺然 提交于 2020-02-28 12:42:12
Wing IDE的调试器所报告的任何异常,都会在调试器以外的任何代码运行事件中展示出来。 通过使用Debug工具或者是Debug菜单中的Start / Continue继续调试过程的异常检测。 Wing IDE将会停止在PrintAsHTML中的错误代码行,并会在Exceptions工具中报错: 注意,这个工具凸显了当前堆栈框架,你可以点击框架导航例外回溯。发生任何异常时,Wing IDE主窗口左下角的Debugger Status会变红。 高级选项 Wing IDE的调试器提供了几个异常处理模式,在处理哪些异常需要报告时会有所不同。也可以添加特定的总是报告或从不报告的异常类型。当然大多数用户不需要更改这些选项,但是需要意识到在高级调试场景中可能会需要用到。 》》》 免费下载Wing IDE最新版 来源: oschina 链接: https://my.oschina.net/u/1259237/blog/169297

jedis使用过程中遇到的异常

心不动则不痛 提交于 2020-01-07 05:05:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这种情况,起初以为是pool的配置不对,但是在调大了各种相应配置之后这样的问题还是经常出现,在查看了源码之后发现 分析了一下: 出现这种问题的原因是jedis 在borrow对象时,由于配置了TestOnBorrow=true,则会在借用前测试一下与redis之间的通信是否正常,若与redis之间的socket断了,或是ping redis返回的不是正常的pong,那么就直接抛出了异常。 解决方案: 目前只想到这种简单的方案,至于为什么会出现偶尔的redis通信问题,有待以后慢慢研究! 后续: 由于某一redis操作耗时,导致其他操作无法正常进行 来源: oschina 链接: https://my.oschina.net/u/1381995/blog/184081

android 捕捉 异常 崩溃 捕捉 crash

大兔子大兔子 提交于 2019-12-25 18:46:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 转载时请记得标明源地址: http://my.oschina.net/lijindou/blog demo 的 源码 地址: http://pan.baidu.com/s/1mhDsJqg 大家应该 知道 在android的 中 开发中,我们不可能 预算到各种各样的 异常 崩溃 ,本人用 淘宝的 时候 ,因为 本人的 手机问题 也出现了 好几次了 崩溃 呢 , 当用户在使用的时候 忽然出现一个崩溃 这对产品是十分 致命的, 用户正在 用着APP 的时候 忽然间 闪退了 然后 出现了这个 崩溃 的 提示,本人感觉 这样 好丑 啊,即使要退出 也要有一种 体面地 退出吧 是不是 !!! 还有闪退了 ,我们 在这个 版本 闪退了,不能让 在 其他 版本 闪退,崩溃 是吧 ,那么 手机是在 用户手上 的 ,我们 不可能插在 我们的电脑 上 去调试 吧 ,是吧 , 所以我们 就要 在 app 崩溃的时候 , 将 手机的信息和 崩溃日志 发送到 我们 能看到的地方去 —— 服务器 由于我 也是 因为 项目 需求 才来 看这块的 , 所以 原理 我也 不是太明白 , 能用 就好了 么 ,是不是 , 好了 废话 不多说了 我直接上 代码 吧 import android.content.Context; import

异常:Attempted to lock an already-locked dir svn:

六眼飞鱼酱① 提交于 2019-12-05 06:22:30
今天用myeclipse上svn更新代码发现报一个异常: Attempted to lock an already-locked dir svn: Working copy 'D:\xxxx\xxxx-webapp' locked 很明显都知道路径: D:\xxxx\xxxx-webapp 锁着了 找到 D:\xxxx\右键 操作如图 然后从新启动tomcat 就ok了!!!!! 来源: oschina 链接: https://my.oschina.net/u/152736/blog/94168

Eclipse 启动loading workbench 后闪退

 ̄綄美尐妖づ 提交于 2019-12-03 11:26:12
Eclipse使用的是64位的开普勒版本,JDK也是对应的64位,之前一直运行正常,知道某一天Eclipse在做SVN更新时卡死了N次,被强制杀进程了N次,然后就开始闪退了,而且闪退时各种不报错。 中间使用了往上介绍的各种放过,更改Eclipse的配置文件ini,加入-vm参数,不得行~。中间多次尝试恢复的过程中报了唯一的一次错误: 根据这个错我找了各种相关的解决办法~,各种不得行~,各种闪退 最后回归本质,搜索loading workerbench 闪退,后来找到解决办法一枚: http://blog.csdn.net/ieicihc/article/details/9629991 采用完美解决方案: 删除文件 [workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi 来源: oschina 链接: https://my.oschina.net/u/246522/blog/271921

异常解决WARNING: Could not open/create prefs root n...

微笑、不失礼 提交于 2019-12-03 08:17:31
昨天使用eclipse 启动tomcat的时候突然注意到了一个异常信息 Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5 虽然不影响tomcat的运行,程序也可以正常运行,但是既然报错肯定有隐患,于是决定解决这个问题, 在BD,开源,csdn 都没有找到有效的解决方案,只好与google,全是英文....我英文很不好哇.... 花了 2个小时终于在一个论坛发现了这个问题的解决方案 我使用的win 7 64位,eclipse jee 64位,tomcat 6,jrebel 5.3.1 我没明白这个问题是怎么回事 ,但是我找到了解决办法 解决方案: 打开 REGEDIT.EXE (真恨微软和其 regedit.reg )。 然后找到 HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft 右键单击权限,然后更改权限为完全许可即可。 修改后,在启动tomcat,异常信息消失,呵呵,现在和大家分享一下. 文章来自:http://my.oschina.net/u/946606/blog/152608 来源: oschina 链接: https://my

《oracle pl/sql程序设计》学习笔记一

↘锁芯ラ 提交于 2019-12-03 02:08:03
本篇主要是记录一些容易混淆或者以前理解不够清楚的知识点,只选择常用知识点。 一、case语句和case表达式 1、case语句和case表达式都有两种模式:简单型和搜索型。 简单型:case exp when res1 then ... res2 then ... [else ...] (end case |end); 搜索型 :case when exp1 then ... exp2 then ... [else ...] (end case |end). 2、区别 case语句没有匹配项会报错;case表达式不会,返回null。 case语句以end case结尾;case表达式以end结尾。 二、for循环只有数值型下标和游标两种方式循环,数值型的上下标只在第一次循环前求值(包括表达式计算和四舍五入)。 三、11g以后新增了continue [label1] [when exp1]语句,用于执行下一个循环。 四、异常处理 1、sqlcode 获取当前异常号,正常为0. 2、sqlerrm 最原始的异常信息获取方式,最大512字节。不带参数时返回当前sqlcode对应的信息。带参数时返回指定sqlcode的信息。 3、dbms_utility.format_error_stack 比sqlerrm可容纳字节多,达1899字节,只能返回当前sqlcode对应的信息。 4、dbms