1.异常、IO、多线程
前言:相对于之前的JAVA基础、面向对象而言,异常较为简单,无非就是怎么去抓取异常,怎么去抛出异常之类的,IO这块我是自己做了个基础模板帮助类,在平常工作中如果涉及到IO这块,我一般都是直接拿我这个模板改,多线程也是弄了个模板,在后面我会附件上传的
异常
- 1.异常的概念:程序中出现的错误
Error:重大的错误,比如内存溢出,磁盘空间不够了…,这种错误一般程序无法处理。
运行时异常:语法没有错误,而运行时违反了java程序的规范而导致程序终止,这种异常往往是由于程序的逻辑不严谨而引起。
非运行时异常:语法错误,不能通过编译,是由程序的设计人员定义的,必须要处理。
如果方法重写中,子类抛出的异常必须是父类抛出的异常或者父类抛出异常的子类 - 2.异常的分类:
编译时异常(非运行时异常):语法错误,不能通过编译(eclipse直接以红线的形式提示)
程序运行异常(运行时异常):语法没有错误,而运行时违反了java程序的规范而导致程序终止
程序运行异常又可分为:
*系统异常:违反了Java已经定义好的一些规范,如数组下标越界,除数为0等
*自定义异常:违反了程序员自己定义的一些规范,如年龄只能在0-100,性别只能为男或女等。
3.异常出现的状态(程序运行异常):程序终止,并在控制台显示错误的详细描述信息
4.处理异常的目的:当出现异常时 能继续运行程序而不终止,并且用控制台显示的方式换成自定义的形式(一般在做项目四,异常信息会记录在日志里面,方便定位错误,在后面进行系统维护)
5.异常处理的一般模式:try catch Exception finally
a.try :用来监视有可能出现异常的代码块。当出现异常时将异常抛出到catch
b.catch:当出现异常时,负责处理异常的代码块,try中一旦有异常会自动跳转到这里
d.Exception类:异常也是对象,都属于Exception类,抛出到catch块中的就是个异常对象。使用异常对象来获得异常信息。
c.finally:无论是否有异常,都会执行的代码
PS:final,finally,finalize三个单词相似但是意思全完全不相同,这点需要注意。
final:最终的,不可改变的,用它来修改变量,这个变量就是常量;用它来修改类,这个类就不能被继承;用它来修饰方法,这个方法就不能被重写。
finalize:是Object的一个方法,任何类都可以对其进行重写,在GC开始工作前,会调用此方法,我们可以进行一些前期的清理工作。
finally:与try…catch…一起使用,表示一定会执行的代码(特殊情况:在执行finally前,存在被执行的System.exit(int i),此时finally不会再执行)6.多重catch语句
当一段代码中可能出现多种类型异常时,可以接上多个catch块分别处理不同类型的异常。系统会自动选择最适合的catch块来处理异常。可以处理多种异常,但每次只会处理一个。一般在最后加上处理Exception类型的异常表示其他未知错误。
异常要越具体越好,以便一对异常有针对性的处理。
catch模块可以多,如果catch后面的异常有继承关系,子类异常要写到父类异常的前面。7.自定义异常的处理
a.自定义异常类,继承与Exception,在构造函数中使用super(String)向父类传递一个表示异常信息的字符串。
b.抛出自定义异常对象的方式:throw new XXXException().
c.处理自定义异常的方式:catch 等同与处理系统异常。
a.自定义运行时异常public class AException extends RuntimeException{public AException(String msg){super(msg);}}b.自定义非运行时异常public class BException extends Exception{public BException(String msg){super(msg);}}
- 8.throws关键字
a.作用:在Java中允许在一个函数内,如果有异常函数内部不处理而使用throws关键字表示该函数会抛出的异常类型。这些异常将交给调用该函数的其他函数负责处理。
b.其他函数调用时则必须处理 或者可以使用throws继续向上层调用者抛出。
throw:抛出一个异常对象,用在方法里面,后面跟异常对象
throws:声明方法有可能会抛出某种异常 用在方法的声明上面,后面跟异常的类名
PS:使用throws向外抛出异常可让代码模块变得简洁明了,但缺点也是明显的,在一个项目中如果都向外抛出异常,最后维护时会很难找到出问题的模块,需要一级一级的去排查
吐槽:第一次用这个资源功能,还不如大学毕业时要上传论文的空间,空间样式什么的都可以自己编辑,可以上传附件,附件免费下载,我的东西给别人下载,还要收钱,这就是中间商赚差价吗?秀啊
附件地址:
https://download.csdn.net/download/kk907528318/10850899
1.异常、IO、多线程相关推荐
- Java学习笔记(7)——Java基础之IO多线程网络思维导图
Java面向对象学习笔记之:包括IO(字节流,字符流,节点流,处理流).线程(线程创建,线程控制,线程同步).网络(TCP Scoket, UDP Scoket)(全屏观看Java学习笔记(7)-- ...
- io多线程 性能 扯犊子
2019独角兽企业重金招聘Python工程师标准>>> io多线程 性能 扯犊子 博客分类: 操作系统 搜素到的各种扯犊子....... io多线程,会降低磁盘的读写?这里的磁盘,只 ...
- 后端开发【一大波有用知识】Redis中的IO多线程(线程池)
一.Redis中的IO多线程原理 服务端收到一条信息,给它deconde成一条命令 然后根据命令获得一个结果(reply) 然后将结果encode后,发送回去 redis的单线程是指,命令执行(lo ...
- Redis io多线程
redis io多线程 redis单线程是指logic在单线程中执行. redis io多线程指read.decode.encode.write在io线程池中处理. 开启多线程的时候,同一个连接的命令 ...
- 5_异常_多线程_设计模式_IO流_网络编程_反射
JavaSE_第五周 异常 异常的概念 什么是异常 概念 概念:程序在运行过程中出现的特殊情况异常-----通过Jvm将异常的信息打印在控制台---告诉开发者(当前程序在某个环节出现了哪些问题!) 异 ...
- Java笔记整理五(Iterator接口,泛型,常见数据结构(栈,队列,数组,链表,红黑树,集合),jdk新特性,异常,多线程,Lambda表达式)
Java笔记整理五 1.1Iterator接口 Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象 ...
- Java 学习(20)--异常 / IO 流
异常(Exception) (1)程序出现的不正常的情况. (2)异常的体系 Throwable(接口,将异常类对象交给 JVM 来处理) |--Error 严重问题,我们不处理.(jvm 错误,程 ...
- java线程带来的异常,java多线程练习之捕获子线程异常例子
本文章给大家介绍java多线程练习之捕获子线程异常一个实例,希望对大家会有所帮助. java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己 ...
- 五、Java中常用的API(通过包进行分类)————异常、多线程和Lambda表达式
之前已经介绍了java.lang包下的相关类,今天将要补充两个常用的API:java.lang.Throwable和java.lang.Thread 一.异常(java.lang.Throwable) ...
- Java MinIO上传文件报异常io.minio.errors.XmlParserException: null等
minioClient.putObject("10-26", "/中午14/ces.docx", "C:\\Users\\T480S\\Desktop ...
最新文章
- [深度学习] keras的EarlyStopping使用与技巧
- 传染病控制(洛谷 1041 WA 90)
- 超过1.2W星的「机器学习路线图」,你的收藏夹可以更新了!
- Python 打开目录与指定文件
- 基于深度学习(端到端)的OCR文字识别
- JSON数据实际应用
- python学习手册四版中文_Python学习手册(第4版) 中文版.pdf 全文免费
- 老码识途——1.1反汇编机器码入门
- 用C 程序理解汉字的机内码表示
- 指纹识别 python实现_Python实现指纹识别你见过没?
- 液晶屏接口定义_简介TFT-LCD液晶屏接口类型之LVDS接口
- python利用danmu实时获取斗鱼等直播网站字幕
- 网络学习 IP路由器寻址过程
- Eigenvalue of random matrix
- 华为笔试题 linux c,华为C/C++笔试题 2
- css3贝塞尔曲线_CSS3动画–使用贝塞尔曲线创建具有弹跳效果的扇出
- java hashmap 去重_HashMap去重 - osc_sj1kgo4z的个人空间 - OSCHINA - 中文开源技术交流社区...
- 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
- html磨砂效果,使用css制作磨砂效果
- 浙江工商大学计算机专业考研分数,浙江工商大学2021考研分数线已公布