throws

2018年4月19日JAVA

断了今生、忘了曾经 提交于 2020-02-10 09:13:12
异常 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。 Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。 Java异常的分类和类结构图 Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。 Throwable又派生出Error类和Exception类。 错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。 异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。 总体上我们根据Javac对异常的处理要求,将异常类分为2类。 非检查异常(unckecked exception):Error 和

java之异常

房东的猫 提交于 2020-02-09 03:22:54
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,当我学习了Java异常机制后,才意识到从C开始,我就在使用异常机制了,知道如何去用if...else...来控制异常了,然而同一个异常或者错误如果多个地方出现,那么每个地方都要做相同处理,感觉相当的麻烦!因此基于OOP思想,Java语言在设计的当初就考虑到这些问题,提出了异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范。 天有不测风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑发生异常时如何处理。    Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常类的对象。异常有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常,即在方法体中,new一个Excption对象抛出。 异常的对象也有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如创建文件时可能有不正确的路径的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的

java学习与应用(3.3)--异常、多线程、lambda简

有些话、适合烂在心里 提交于 2020-02-08 20:23:54
异常 异常是一个类,顶层父类为Throwable,分Error(错误,必须修正代码)和Exception(编译期异常)。Exception下有RunTimeException(运行期异常)。 alt+回车选择try catch,可以抛出异常(编译期异常,运行期异常)的处理使得继续执行,或者抛出到函数上终止执行。 发生异常时,JVM创建异常对象,没有try catch则发送给方法的调用者main,main方法提交到JVM处理,JVM打印并终止java程序。 try catch finally throw throws。 throw在指定方法抛出指定异常,如在方法内部:throw new xxxException(“原因”)。对于RuntimeException或子类通过JVM处理(运行异常),编译异常使用trycatch或throws处理。 Objects工具类的非空静态方法:requireNonNull方法,自动判断值是否为空然后抛出异常。 throws将异常对象抛出(throw)给方法的调用对象。最终交给JVM中断处理,在方法声明时候使用,格式如:throws AAAException,...写在方法的声明处。异常必为Exception或子类,抛出时候有子父类关系只声明父类。返回上级后的函数仍然需要抛出异常声明。 trycatch(xxxException e)格式处理异常

Java 中的打印流

女生的网名这么多〃 提交于 2020-02-08 01:28:21
概述 平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输岀方式。 PrintStream类 PrintStream类,为其他输出流添加了功能,使他们能够方便的打印各种数据值表示格式。 PrintStream类的特点: 只负责数据的输出,不负责数据的读取。 与其他输出流不同,PrintStream永远不会抛出IOException异常。 特有方法:print()、println() 构造方法 PrintStream(String fileName) // 使用指定的文件名创建一个新的打印流。 继承自父类的方法 PrintStream extends OutputStream 1、public abstract void write(int b) throws IOException; // 将指定的字节输出流。 2、public void write(byte b[]) throws IOException{...}; // 将b.length字节从指定的字节数组写入此输出流。 3、public void write(byte b[], int off, int len) throws IOException{...}; //

JAVA基础_IO流

﹥>﹥吖頭↗ 提交于 2020-02-06 03:15:51
字符流和字节流: 字节流的两个基类: InputStream,OutputStream 字符流两个基类: Reader,Writer ··字符流的Writer: import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo01 { public static void main(String[] args) throws IOException { //创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。 //而且该文件会被创建到指定目录下,如果该目录下已有同名文件,将被覆盖。 //其实该步骤就是明确数据要存放的目的地。 FileWriter fw = new FileWriter("demo.txt"); //调用write方法,将字符串写入流中。 fw.write("abcde"); //刷新流对象中的缓冲中的数据 //将数据存入到目的地中。 //fw.flush(); //关闭流资源,关闭之前会刷新一次内部的缓冲中的数据。将数据刷到目的地。 //和flush区别;flush刷新后,流可以继续使用,close刷新后,会将流关闭。 fw.close(); } } IO异常的处理方式: public class IOExceptionDemo {

MyBatis快速上手增删改查

浪尽此生 提交于 2020-02-05 11:08:45
MyBatis入门到CURD 作为一个快乐的小码农,在每一个阶段往往都在重复写着不同版本的,学生管理,用户管理,注册登录,从 JavaSE 的控制台版,或者 GUI 版,再到 JavaWeb的 JSP版,再到纯粹使用 HTML 作为前端展示的版本,以及使用一个更新的技术,在此其中,我们用过 txt 做数据库,用 XML 也可以,到现在常用的 MySQL,增删改查一直是我们必不可少的一部分内容,即使你不懂原理,即使你对这个技术的理解不是很深刻,拿出你的增删改查,噼里啪啦就是一段乱敲,好歹还是能让你着手先做起来(当然,对技术的理解还是很重要的),今天就和大家聊一聊 MyBatis 这门技术的 CURD (增删改查) 优化测试方法 在测试方法中,读取配置文件,生产 SqlSession,释放资源等等,在每一测试方法的时候,都是重复的,所以我们完全可以提出出这一部分,防止大量的重复代码 @Before public void init() throws Exception{ //读取配置文件 inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); //创建SqlSessionFactory工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder()

java深复制与浅复制

一世执手 提交于 2020-02-05 00:13:34
一. 浅复制 当一个类需要有拷贝的功能,需实现Cloneable接口,但该接口缺少一个clone方法,其主要功能是为类提供一个功能合适的公共clone()方法,使用时需重写Object类的clone()方法。 通过这种方法实现的复制为浅复制,即复制得到的对象与原对象指向同一个内存地址,修改其中一个对象的属性,其他对象会随之发生改变。 例如: public class Student implements Cloneable { private int age; private Teacher teacher; public Student(int age, Teacher teacher) { this.age = age; this.teacher = teacher; } public Student() { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } @Override public String toString() {

Java 对象序列化

守給你的承諾、 提交于 2020-02-04 12:45:02
文章目录 什么是序列化? 举例:(定义一个可以被序列化的类) 序列化与反序列化 举例:(实现序列化与反序列化) transient 关键字 举例:(transient 关键字的使用) 什么时候会使用到 transient 关键字? 几乎只要是 Java 开发就一定会存在有序列化的概念,而正是因为序列化的概念逐步发展,慢慢地也有了更多 的序列化标准 什么是序列化? 所谓的对象序列化指的是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或者是网络传输 然而并不是所有的对象都可以被序列化的,在 Java 里面有一个强制性的要求:如果要序列化的对象,那么对象所在的类一定要实现 java.io.Serializable 父接口,作为序列化的标记,这个接口并没有任何的方法,为什么?因为它描述的是一种类的能力 举例:(定义一个可以被序列化的类) class Person implements Serializable { // Person 类可以被序列化 private String name ; private int age ; public Person ( String name , int age ) { this . name = name ; this . age = age ; } // 省略 setter getter @Override public

Java学习43:Java的异常

∥☆過路亽.° 提交于 2020-02-04 03:15:01
从这一章开始,我们学习Java的另一个重要知识,Java里面的异常,以及如何捕获,打印。 首先关闭当前项目,左上角点击file,close project,然后创建一个新的项目,名字叫做SixthDemo。然后创建Java的包,名为com.sixth.error,然后创建一个Java文件,名为Demo01.java 在计算机程序运行的过程中,总是会出现各种各样的错误。 有一些错误是用户造成的,比如,希望输入一个int类型的年龄,但是用户输入的是abc: // 假设用户输入了abc: String s = "abc"; int n = Integer.parseInt(s); // NumberFormatException! 程序想要读取某个文件的内容,但是用户已经把它删除了: // 用户删除了该文件: String t = readFile("C:\\abc.txt"); // FileNotFoundException! 还有一些错误是凭缘分碰到的,而且永远无法避免。例如: 网络断开,连接不到服务器 内存耗尽,程序崩溃 用户点“打印”,但是你没有外接打印机 … 所以,一个健壮的程序必须处理各种各样的错误。 所谓错误,就是程序调用某个函数的时候,如果失败了,就表示出错。 调用方如何获知调用失败的信息?有两种方法: 方法一:约定返回错误码。 例如,处理一个文件,如果返回0,表示成功

java学习笔记之IO编程—对象序列化

南楼画角 提交于 2020-02-04 00:51:19
对象序列化就是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或网络传输。 并不是所有的对象都可以被序列化,如果要序列化的对象,那么对象所在的类一定要实现java.io.Serializable父接口,作为序列化的标记,这个接口没有任何方法,描述的是一种类的能力。 java中提供了ObjectOutputStream(序列化) ObjectInputStream(反序列化)两个类 ObjectOutputStream的定义: public class ObjectOutputStream extends OutputStream implements ObjectOutput, ObjectStreamConstants 构造方法: public ObjectOutputStream​(OutputStream out) throws IOException 主要方法: public final void writeObject​(Object obj) throws IOException ObjectInputStream的定义: public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants 构造方法: public