异常处理

异常规范之异常的概念

自作多情 提交于 2020-01-17 23:44:08
异常概念 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法错误 代码的格式错了,某个字母输错了 运行时错误 空指针异常,数组越界,除数为零等 逻辑错误 运行结果与预想的结果不一样,这是一种很难调试的错误 Java中的异常处理机制主要处理运行时错误。 异常分类: 在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。 抛出异常 当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。 捕获异常 在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler),进行处理。 来源: CSDN 作者: Leon_Jinhai_Sun 链接: https://blog.csdn.net/Leon_Jinhai_Sun/article/details/104025223

java异常处理机制

故事扮演 提交于 2020-01-17 22:57:16
Exception 类的层次 java中所有的异常类是从 java.lang.Exception 类继承的子类。 而Exception 类是 Throwable (可抛出的)类的子类。除了Exception类外,Throwable还有一个子类Error 。 Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。 Error 用来指示运行时环境发生的错误。 例如,例如操作系统崩溃, jvm出错, 动态链接库失败等,代表的是严重错误, 这种错误程序员一般无法进行处理 java中的异常基本分为 检查性异常: 最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被忽略。 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。 常见的检查性异常:在Java的标准包java.util 和 java.net 中定义的异常都是非运行异常。 常见的非检查性异常: 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组下标越界异常:ArrayIndexOutOfBoundsException java中对异常的处理   

HttpClient异常处理

老子叫甜甜 提交于 2020-01-17 12:22:54
HttpClient 能够抛出两种类型的异常:在 I/O 失败时,如套接字连接超时或被重置的java.io.IOException 异常,还有标志 HTTP 请求失败的信号,如违反 HTTP 协议的HttpException 异常。通常 I/O 错误被认为是非致命的和可以恢复的,而 HTTP 协议错误则被认为是致命的而且是不能自动恢复的。 一、HTTP运输安全 要理解 HTTP 协议并不是对所有类型的应用程序都适合的,这一点很重要。HTTP 是一个简单的面向请求/响应的协议,最初被设计用来支持取回静态或动态生成的内容。它从未向支持事务性操作方向发展。比如,如果成功收到和处理请求,HTTP 服务器将会考虑它的其中一部分是否完成,生成一个响应并发送一个状态码到客户端。如果客户端因为读取超时,请求取消或系统崩溃导致接收响应实体失败时,服务器不会试图回滚事务。如果客户端决定重新这个请求,那么服务器将不可避免地不止一次执行这个相同的事务。在一些情况下,这会导致应用数据损坏或者不一致的应用程序状态。尽管 HTTP 从来都没有被设计来支持事务性处理,但它也能被用作于一个传输协议对关键的任务应用提供被满足的确定状态。要保证 HTTP 传输层的安全,系统必须保证 HTTP 方法在应用层的幂等性。 二、终止请求 在一些情况下,由于目标服务器的高负载或客户端有很多活动的请求,那么 HTTP

Java(异常处理)动手动脑

隐身守侯 提交于 2020-01-17 05:23:04
1> 请阅读并运行 AboutException.java 示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。 import javax.swing.*; class AboutException { public static void main(String[] a) { float i=1, j=0, k; k=i/j; System.out.println(k); try { k = i/j; // Causes division-by-zero exception //throw new Exception("Hello.Exception!"); } catch ( ArithmeticException e) { System.out.println("被0除. "+ e.getMessage()); } catch (Exception e) { if (e instanceof ArithmeticException) System.out.println("被0除"); else { System.out.println(e.getMessage()); } } finally { JOptionPane.showConfirmDialog(null,"OK"); } } } 异常处理: Java中异常捕获语句 try

学习《Java编程思想》第二天

自作多情 提交于 2020-01-17 01:53:40
1.6 继承 1.6.1 “是一个”与“像是一个”关系 继承时只覆盖基类的方法,因此导出类和基类是完全相同的类型,因为它们具有完全相同的接口。结果可以用一个导出类对象来完全替代一个基类对象。通常被称为 替代原则 。 有时在导出类型中添加了新的接口元素,这样也就扩展了接口,这个新的类型仍然可以替代基类,但是基类无法访问新添加的方法。 1.7 伴随多态的可互换对象 把一个对象不当作它所属的特定类型来对待,而是将其当作其基类的对象来对待。因此人们可以编写出不依赖于特定类型的代码。 面向对象程序设计语音使用了后期绑定的概念,当向对象发送消息时,被调用的代码直到运行时才能确定。编译器确保被调用方法的存在,并对调用参数和返回值执行类型检查,但是并不知道将被执行的确切代码。 为了执行后期绑定,Java使用一小段特殊的代码来替代绝对地址调用,这段代码使用在对象中存储的信息来计算方法体的地址,这样,根据这一小段代码的内容,每一个对象都可以具有不同的行为表现。当向一个对象发送信息时,该对象就能够知道对这条消息应该做些什么。 例如: 创建方法: void doSomething(Shape shape){ shape.erase(); shape.draw(); } 调用这个方法: Circle circle = new Circle(); Triangle triangle = new

统一异常处理

只谈情不闲聊 提交于 2020-01-17 01:15:06
统一异常处理 1,创建统一异常处理类 package com . xindong . common . handler ; /** * 统一异常处理类 */ @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler ( Exception . class ) @ResponseBody public R error ( Exception e ) { e . printStackTrace ( ) ; return R . error ( ) ; } } @ExceptionHandler ( BadSqlGrammarException . class ) @ResponseBody public R error ( BadSqlGrammarException e ) { e . printStackTrace ( ) ; return R . codeEnum ( ResultCodeEnum . BAD_SQL_GRAMMAR ) ; } @ExceptionHandler ( MyException . class ) @ResponseBody public R error ( MyException e ) { e . printStackTrace ( ) ; return R

Python小练:(五:异常处理)

我的未来我决定 提交于 2020-01-17 00:37:10
   # 1、实现一个文件复制器函数,通过给函数传入一个路径,复制该路径下面所有的文件(目录不用复制)到当前目录,# 要求:如果传路径不存在,不能报错准备复制的目录:下面有两个目录和三个文本文件,我们这次复制的就是这三个文本文件。(附文本文件内容)我们要把【操作的目录】下的文本文件复制到【Python_异常捕获】目录下 代码: 运行结果: # 2、改善上节课扩展作业的注册程序,# 打开文件的读取数据的时候,如果文件不存在会报错,# 请通过try-except来捕获这个错误,进行处理,让注册程序可以继续运行。执行代码(可直接执行的): def registered(file): try: # 读取文件内容时校验是否存在该文件 with open(file,'r',encoding='utf-8') as fb: user_info = eval(fb.read()) except FileNotFoundError as FN: # 如果不存在该文件则 创建文件,然后进行注册流程 print("---------------------文件不存在,尝试新建文件---------------------") with open(file,'w',encoding='utf-8') as fb1: # 新建一个文件,写入内容,无内容会报错 fb1.write("[]") with

java_8 异常处理

天涯浪子 提交于 2020-01-17 00:14:43
一、异常概述与异常体系结构 Error:Java虚拟机无法解决的严重问题: JVM系统内部错误,资源耗尽,如:StackOverflow \OOM堆栈溢出 处理办法:只能修改代码,不能编写处理异常的代码 Exception:可以处理的异常 (1)空指针访问 (2)试图读取不存在的文件 (3)网络连接中断 (4)数组角标越界 处理异常的最佳时间:编译期间 编译时异常----受检异常-----更严重,执行javac.exe命令时可能出现的异常 运行时异常---非受检异常---执行java.exe命令时,出现的异常---一般也不用try-catch处理(实际开发中) 异常的体系结构: 常见的异常类型,举例说明: /* **************运行时异常************ */ @Test //ArithmeticException public void test1(){ int a=2; int b=0; System.out.println(a/b); } @Test //InputMismatchException public void test2(){ Scanner scanner=new Scanner(System.in); int score=scanner.nextInt(); System.out.println(score); scanner.close

Oracle异常

落花浮王杯 提交于 2020-01-16 17:51:35
三种抛异常 1 预定义的异常处理 异常名称 异常码 描述 NO_DATA_FOUND ORA-01403 SELECT INTO 语句中没有返回任何记录 TOO_MANY_ROWS ORA-01422 SELECT INTO 语句中返回多于 1 条记录 异常号码,找对应的异常名字,判断抛出的异常名字,根据匹配的异常名处理; declare v_id varchar2 ( 20 ) ; begin select id into v_id from testCusor where id = '11' ; update testCusor set id = '22' where id = v_id ; exception when NO_DATA_FOUND then dbms_output . put_line ( '没有数据' ) ; when TOO_MANY_ROWS then dbms_output . put_line ( '多条数据' ) ; when others then dbms_output . put_line ( '其他错误' ) ; end ; 2 非预定义的异常处理 在declare中声明一个异常,使用pragma exception_init方法将异常和错误码进行绑定,然后对声明的异常进行处理; declare v_id varchar2 ( 20 ) ;

php笔记之文件载入和异常处理

廉价感情. 提交于 2020-01-16 15:54:00
文件载入 介绍 在实际的开发中,经常会在一个php文件中导入其他的文件,被引入的文件可以是html也可以是php文件 语法 require require(文件名) require_once(文件名) 示例: include include(文件名) include_once(文件名) 在引用文件时,主要有两种使用目的: 当前文件(php)有数据,想要被引用的文件(html)显示 在当前文件(php)想要使用,另一个文件(php)中的功能性代码: 引入路径问题 在实现项目中,对于html文件,我是不允许用户直接请求,而是指向一个php文件,让php文件来引用这个html文件 当一个php文件引入一个html文档时,html文件本身也会引入一些其他的文件,如图片文件,css文件,js文件,这时会发生改变路径的问题。路径要以当前php文件所在的路径问起点 include和require的区别 include在引入文件时,如果被引入的文件不存在则会报错,但程序还会继续向下执行 require在引入文件时,如果被引入的文件不存在,则会上断程序的执行 经验法则: require 一般用于引入php文件,因为php里面一般书写的是功能性的代码 include一般用于引入html文档 include、require VS include_once 、require_once的区别 include