异常处理

springMVC异常处理

柔情痞子 提交于 2020-03-29 06:24:41
1.在处理器中如果有异常就new一个异常对象 if("aynu".equals(name)){   throw new UsernameException("用户名有误"); } 2.创建异常类UsernameException继承Exception 重写有参和无参构造器 3.在主配置文件中 注册异常解析器,并设置其属性   <bean class="simpleMappingExceptionResolver的全路径名">     <property name="defaultErrorView" value="/error.jsp"/>//如果不出现UsernameException,输入的userName正确,如果再出现异常会跳到默认页面error,jsp中。     <property name="exceptionattribute" value="ex"/>//设置默认的异常值,zaijsp中输入${ex}则会输出异常原因。     <property name="exceptionMappings" >       <props>         <prop key="UsernameException">/userError.jsp</prop>        </props>     </property>   </bean> 来源: https://www

SpringMVC的全局异常处理

随声附和 提交于 2020-03-29 06:24:01
@ControllerAdvice的使用 我们都知道做项目一般都会有全局异常统一处理的类,那么这个类在Spring中可以用@ControllerAdvice来实现。 @ControllerAdvice ,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能: 全局异常处理 全局数据绑定 全局数据预处理 灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Boot 中可以直接使用。 package com.boss.hr.train.fishkkmybatis.handle; import com.boss.hr.train.fishkkmybatis.entity.Result; import com.boss.hr.train.fishkkmybatis.enums.DictionaryEnum; import com.boss.hr.train.fishkkmybatis.exception.BaseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindException;

Java异常处理小结

十年热恋 提交于 2020-03-28 08:19:11
本小结是根据尚硅谷的教程逐步进行总结,包含了自己的理解。  本篇只是对异常(exception)进行总结 exception包含编译(checked)和运行两部分异常。编译时异常是指在写代码的时候出现的异常,例如FileNotfoundException,运行时是指在运行后,程序计算后可能会出现的异常,例如数组越界异常。  这些异常都可以在代码中提前进行预防。 程序异常的处理:抓抛模型    过程一:抛:程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个异常对象,并将这个对象抛出,一旦抛出后,代码就不再执行。  二:抓:可以理解为异常的处理方式。 try-catch-finally结构分析 try中放可能会出现异常的代码  catch中的参数部分是异常类型+变量名,内部为异常处理的方式  finally中为一定会执行的代码。  其中finally可选。    抛出的对象只会在第一次匹配到的catch中发挥作用,其他的异常即时有用也不会发挥作用。  catch中的异常类型如果没有子父类关系,声明顺须无所谓。  catch中常用getStackTrace()来处理异常。 关于finally。像数据库连接、输入输出流、网络编程Socket等资源,JVM是不能回收的,这些需要手动释放的资源就要放在finally中。  以文件打开为例,在try中可能会出现文件的异常

云主机网络异常处理过程

狂风中的少年 提交于 2020-03-27 12:24:04
背景 zabbix扫描到主机网络异常 处理过程 1.使用ifconfig命令查看eth0网卡,发现数据流量异常,网卡发送数据量高达393GiB 2.查看进程,发现如下异常进程 3、查看该文件 etc下不应该出现权限这么高的文件。对比其他服务器,发现没有该文件 4、查看metacity进程 5、强制结束该进程 6、删除metacity文件 7、继续查看异常进程 杀掉之后又启起来了,没有根除掉。发现删除的文件又出现了 8、查找到了陌生用户 删除之 9、找到异常的父进程的监控程序(该程序一直在启动metacity进程) 10、找到该文件 对比发现这两个文件完全一致,就是复制的这个文件到/etc/metacity。删除该文件 11、再次结束该进程,看是否还会创建 12、等待一段时间查看 发现又生成了一个这个进程 发现是root用户创建的 13、使用htop过虑这个进程/usr/bin/bsd-port,看到有很多这种进程 应该还有其他木马程序在监控 14、通过查找文件大小,发现很多文件都被掉包了 15、把正常机器的文件复制过来 复制server2的/bin/* 所有文件和/usr/sbin/* 下面所有文件到server16 16、删除有问题的文件 17、强制结束两个木马进程 18、重启服务器观察1个小时发现系统进程正常,恢复完毕。 总结 系统受到互联网黑客植入木马,导致网络数据异常

异常处理

怎甘沉沦 提交于 2020-03-27 10:23:19
3 月,跳不动了?>>> 异常处理 定义 程序运行会出现各种各样的问题,例如语法编写错误或文件读写错误等,出现各种各样的bug(八阿哥) 默认情况下,程序会马上停止执行,并根据错误情况,反馈异常情况(显示栈追踪) 方便程序员进行排错和调试 哪个位置出了问题? 哪种类型的错误? 本质上讲,异常是一种类,并且有很多子类,基类为BaseException 举例 IOError 异常说明 输入输出异常 异常代码 file1 = open('file.txt','r') 异常输出 Traceback (most recent call last): File "/Users/jaykingchen/PycharmProjects/PINGINGLAB/6.Errors & Exceptions/IOError.py", line 1, in <module> file1 = open('file.txt','r') IOError: [Errno 2] No such file or directory: 'file.txt' Process finished with exit code 1 ZeroDivisionError 异常说明 分母为0异常 异常代码 a = 1 b = 0 print a / b 异常输出 Traceback (most recent call last):

异常处理

安稳与你 提交于 2020-03-27 02:59:22
一,异常和错误 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha 语法错误 语法错误 2.逻辑错误(逻辑错误) #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0 res2=1+'str' 逻辑错误 part2:什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 part3:python中的异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 # 触发IndexError l=['egon','aa'] l[3] # 触发KeyError dic={'name':'egon'} dic['age'] #触发ValueError s='hello' int(s) 错误举例 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包

不可预知得内部异常处理

好久不见. 提交于 2020-03-27 02:36:39
复制provider.php到模块下 <?php use app\ExceptionHandle; use app\Request; // 容器Provider定义文件 return [ 'think\exception\Handle' =>'app\\demo\\exception\\Http', ]; 在模块下新建exception文件夹,新建http类 <?phpnamespace app\demo\exception;use think\exception\Handle;use think\Response;use Throwable;class Http extends Handle{ protected $httpStatus = 500; public function render($request, Throwable $e): Response { if( method_exists($e, "getStatusCode") ) { $httpStatus = $e->getStatusCode(); } else { $httpStatus = $this->httpStatus; } // public $httpStatus = 500; return show(config('status.error'), $e->getMessage(), [],

java异常机制

柔情痞子 提交于 2020-03-25 08:32:14
try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 package Test; public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Exception e) { System.out.println( "testEx, catch exception"); ret = false; throw e; } finally { System.out.println( "testEx, finally; return value=" + ret); return ret; } } boolean testEx1() throws Exception { boolean ret = true; try { ret = testEx2(); if (!ret) {

java7 异常处理增强

做~自己de王妃 提交于 2020-03-23 22:44:43
在Java 7发行版中,oracle在异常处理机制上也做了一些不错的更改。这些主要是 改进的catch块 和 多余的throws子句 。让我们看看他们是如何改变的。 1.改进了Java 7中的catch块 在此功能中,现在您可以 在单个catch块中捕获多个异常 。在Java 7之前,您只能在每个catch块中仅捕获一个异常。 要指定期望的例外列表,使用竖线('|')字符。 Java程序可在单个catch块中捕获多个异常。 try { //Do some processing which throws NullPointerException; throw new NullPointerException(); } //You can catch multiple exception added after 'pipe' character catch( NullPointerException npe | IndexOutOfBoundsException iobe ) { throw ex; } 如果一个 catch 块处理一个以上的异常类型,则该** catch 参数是隐式的 final **。在此示例中, catch 参数 ex 为 final ,因此您不能在 catch 块内为其分配任何值。 2. Java 7中的冗余抛出子句

课后作业9异常处理

天大地大妈咪最大 提交于 2020-03-23 21:49:08
动手动脑 1 : 题目: 结果截图: 基础知识: 1. 结构: Try{ // 可能发生运行错误的代码: } Catch( 异常类型 异常对象引用 ){ // 用于处理异常的代码 } Finally{ // 用于“善后”的代码 } 2. 所捕获的异常均派生自 Exception 类。 3. 不管是否有异常发生, finally 语句块中的语句始终保证被执行。 动手动脑 2 : 题目: 运行结果: 结果分析: 嵌套的异常显示,先显示最里层的,然后在接外层。 动手动脑 3 : 题目: 结果截图: 结果分析: 当查出一个异常后,如果未能解决,是不能跳过直接去接下一个异常的,必须解决完一个,再解决下一个。 动手动脑 4 : 结果截图: 结果分析: 每个层次中只要有 finally 语句, Finally 语句就一定会执行,不论是否接到错误。 动手动脑 5 : 题目: 结果截图: 结果分析: 不一定会执行,在这个程序中,在 throw 语句执行后, finally 语句就没有执行。 实验: 题目: 编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出 “不及格”、“及格”、“中”、“良”、“优”的结论。 代码: package main; import javax.swing.JOptionPane; public class Chengji {