throws

java 异常学习 笔记

送分小仙女□ 提交于 2020-01-29 13:53:43
---恢复内容开始--- 异常:是在运行时期发生的不正常情况 在Java中用类的形式对不正常情况进行了描述和封装对象。 描述不正常的情况的类,就称为异常类。 以前正常流程代码和问题处理代码相结合,现在讲正常流程代码和问题代码分离,提高阅读性。 其实异常就是java通过面对对象的思想将问题封装成对象,用异常类对其进行描述。 不同的问题用不同的类进行具体的描述。如:角标越界、空指针等等。 异常问题分成两大类: Throwable:无论是error,还是exception,问题发现就应该可以抛出,让调用者知道并处理。 Throwable 及其所有的子类都具有可抛性。 关键字: throws throw , 凡是可以被这连个关键字所操作的类和对象都具备可抛性。  --1.一般不可处理的。 Error     特点:由jvm抛出的严重性的问题。       这种问题发生一般不针对性处理,直接修改程序。  --2.可以处理的。 Exception 该体系的特点:   子类的后缀名都是用其父类名作为后缀,阅读性很强。 自定义异常: 如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛性。 才可以被两个关键字所操作: throws thorw 例: class FuShuIndexException extends Exception{  

zip操作工具类

丶灬走出姿态 提交于 2020-01-29 04:18:49
一、背景 最近在做一个项目,里面有一个一次性下载多张证书的接口,我需要将多张证书返回给前端,然后我就想到是否可以把证书文件压缩到一个zip文件,讨论之后就采用了我的想法。之后就想着怎么才能方便的写入呢?实现如下: 二、代码实现 import java . io . * ; import java . util . Arrays ; import java . util . List ; import java . util . concurrent . locks . ReentrantReadWriteLock ; import java . util . zip . ZipEntry ; import java . util . zip . ZipOutputStream ; public class ZipUtil { private static ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock ( ) ; /** * 获取指定路径下的文件,如果没有就直接创建一个 * @param path 文件夹名称,可空 * @param fileName 文件名,非空 * @return 返回指定w文件 * @throws IOException 读取异常 */ public

try-catch-finally(转)

江枫思渺然 提交于 2020-01-26 02:17:30
try{ //代码区 }catch(Exception e){ //异常处理 } 代码区如果有错误,就会返回所写异常的处理。 首先要清楚,如果没有try的话,出现异常会导致程序崩溃。 而try则可以保证程序的正常运行下去,比如说: try{ int i = 1/0; }catch(Exception e){ ........ } 一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错! try catch 是捕捉try部分的异常,当你没有trycatch的时候,如果出现异常则程序报错,加上trycatch,出现异常程序正常运行,只是把错误信息存储到 Exception里,所以catch是用来提取异常信息的,你可以在Catch部分加上一句 System.out.println(e.ToString());,如果出现异常可以把异常打印出来 java的异常处理机制(try…catch…finally) 1 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告 诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案 哦

作业10-异常

大兔子大兔子 提交于 2020-01-25 09:00:12
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容。 2. 书面作业 1. 常用异常 1.1 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免? 1. ArrayIndexOutOfBoundsException 2. NullPointerException 3. ClassCastException 4. NumberFormatException 不需要捕获,因为都属于 Unchecked Exception 类型的异常,所以无需进行try-catch。写代码的时候多注意这些问题,空指针,类型转换等等,多留意,避免出错。 1.2 什么样的异常要求用户一定要使用捕获处理? 属于 Checked Exception 类型的异常一定要使用捕获处理。 2. 处理异常使你的程序更加健壮 2.1 实验总结。并回答:怎么样才能让你的程序更加健壮? 字符串类型转换 int 这里可能会出现异常,所以用 try-catch 进行捕获处理。 3. throw与throws 3.1 Integer.parsetInt 一开始就有大量的抛出异常的代码,这种做法有什么好处? 好处: 1.避免程序发生异常,崩溃; 2.通过throw抛出异常可以让用户知道哪里出现异常。 3.2 结合自己编写的程序与3.1

异常处理过程和异常处理的执行顺序(针对try{}catch{}finally{}而言)

隐身守侯 提交于 2020-01-25 05:06:51
1.异常的处理方式有两种分别为:try{}catch{}finally{}和throws下面简单说一下这两者的区别和联系。 2.出现异常之后如果没有进行捕获处理系统就会直接将这个异常栈的跟踪信息直接打印出来之后就结束这个程序的执行。 下面我们看一下异常处理: public class Test{ public static void main(String[] args){ Test2 test2 = new Test2(); try{ System.out.println("invoke the method begin!"); test2.method(); System.out.println("invoke the method end!"); }catch(Exception e){ System.out.println("catch Exception!"); } } } class Test2{ public void method() throws Exception{ System.out.println("method begin!"); int a = 10; int b = 0; int c = a/b; System.out.println("method end!"); } } 很明显,答案出来了: invoke the method begin!

Java异常处理机制

ε祈祈猫儿з 提交于 2020-01-24 00:06:33
异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。 学习 Throwable是所有异常的共同祖先 Error是Throwable的子类,是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止 Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。 通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。 可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况

Can static code blocks throw exceptions? [duplicate]

杀马特。学长 韩版系。学妹 提交于 2020-01-23 05:38:18
问题 This question already has answers here : Why doesn't Java allow to throw a checked exception from static initialization block? (8 answers) Closed 5 years ago . In a hypothetical situation I have a class like this: import java.io.File; import java.util.Scanner; class X { static Scanner scanner; static { scanner = new Scanner(new File("X.txt")); } } When compiling, I get unreported exeption java.io.FileNotFoundException ; must be caught or declared to be thrown because public Scanner(File

Thinking in Java---异常处理机制

孤街浪徒 提交于 2020-01-22 18:36:42
java的异常处理机制能够使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续运行的问题,,当程序运行时出现异常时,系统就会自己主动生成一个Exception对象来通知程序.这样就极大的简化了我们的工作. 当然java的异常对象有非常多种,以下这幅图显示了java异常类的继承体系. 从图片中能够看到java将全部的非正常情况分成了两种: 异常(Exception)和错误(Error),他们都继承Throwable父类.Error错误通常是指与虚拟机相关的问题,如系统崩溃,虚拟机错误等.这样的错误无法恢复或不可捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此也不应该试图用catch来进行捕获.而对于Exception我们是能够进行捕获并处理的.以下从几个方面对异常处理机制进行介绍. 一.异常处理的一般格式 try{ ///可能会抛出异常的代码 } catch(Type1 id1){ //处理Type1类型异常的代码 } catch(Type2 id2){ ///处理type2类型异常的代码 } try块中放置可能会发生异常的代码(可是我们不知道详细是哪种异常).假设异常发生了,try块抛出系统自己主动生成的异常对象,然后异常处理机制将负责搜寻參数与异常类型相匹配的第一个处理程序,然后进行catch语句运行(不会在向下查找)

20200107——day02 mybatis

与世无争的帅哥 提交于 2020-01-21 12:34:31
总结 sqlsessionfactorybuild接受sqlmapconfig.xml文件流,构建出sqlsessionfactory对象 sqlsessionfactory读取sqlmapconfig.xml连接数据库和mapper映射信息,用来生产真正操作数据库的sqlsession对象 sqlsession对象有两大作用 1)生成接口代理对象 2)定义通用增删改查 在sqlsessionImpl对象的getMapper方法中分两步来实现,第一,先用sqlsessionfactory读取数据库连接信息创建connection对象。第二,通过jdk代理模式创建出代理对象作为getMapper方法的返回值,这里主要工作是创建代理对象时第三个参数处理类里面得到sql语句,执行crud操作。 封装结果集,我们都需要对返回的数据库结果集进行封装,变成java对象返回给调用者,我们还要必须知道调用者所需要的返回类型。 插入表 @Test public void testSave ( ) throws Exception { User user = new User ( ) ; user . setAddress ( "吉林长春" ) ; user . setUsername ( "马铭泽" ) ; user . setSex ( "男" ) ; user . setBirthday (

jdbc框架 commons-dbutils的使用

一个人想着一个人 提交于 2020-01-21 08:18:53
 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。   commons-dbutilsAPI介绍: org.apache.commons.dbutils.QueryRunner org.apache.commons.dbutils.ResultSetHandler   工具类 org.apache.commons.dbutils.DbUtils 直接上代码: 1.先建立一个jdbc的连接相关类: 1 package com.ming.core.db; 2 3 import java.io.InputStream; 4 import java.io.PrintWriter; 5 import java.sql.Connection; 6 import java.sql.DriverManager; 7 import java.sql.PreparedStatement; 8 import java.sql.ResultSet; 9 import java.sql.SQLException; 10 import java.sql