java异常Exception
学习笔记:
一.程序的异常:Throwable
严重问题:Error ,我们不处理。这种问题一般很严重,不如内存溢出
问题:Exception
编译问题:不是RuntimeException异常。必须进行处理,如果不处理编译不能通过
运行问题:RuntimeException,这种问题也不处理。是因为代码不够严谨。需要修改代码 二.如果程序出现了问题,我们没有处理,最终Jvm会做默认处理。把异常信息打印到控制台。同时会结束程序。这对程序非常不友好,
我们希望一块代码出现问题时,不会影响另一块代码执行。这是需要我们自己处理异常
1.我们自己如何处理?
方式一:
try{
可能出现问题的代码。 //try里面的代码越少越好
}catch(异常名 变量){
处理问题 //catch里必须有处理操作,否则就会把问题隐藏掉(还不如不处理呢)
}finally{
释放资源
}
当有多个异常:
try{
可能出现问题的代码。
}catch(异常名1 变量){
处理问题
}catch(异常名2 变量){
处理问题
}
JDK1.7针对多个异常处理方案:
try{
可能出现问题的代码。
...
}catch(异常名1 | 异常名2 |... 变量){ //这几个异常必须是同一级的,都是RuntimeException的子类
处理问题
...
} 2.在try里面发现问题后,jvm会帮我们 生成一个异常对象,然后把这个异常对象抛出,和catch里面的类进行匹配,
如果该对象是某个类型的,就会执行该catch里面的处理信息
例如:
String time = "2018-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(time);
} catch (ParseException e) {
e.printStackTrace();//我们并没有手动创建ParseException对象,说明这个e对象是jvm帮我们创建的
}
3.异常中的方法
getMessage():异常的消息字符串
例如:Unparseable date: "2018-01-01"
toString(): 返回异常的简单信息描述
例如:java.text.ParseException: Unparseable date: "2018-01-01"
printStackTrace():打印异常详细信息
例如:java.text.ParseException: Unparseable date: "2018-01-01"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.myexception.Test.main(Test.java:15) 4.如果我们处理不了(比如没有权限) ,就抛出去。
代码:
public void method() throws ParseException{
Date date = sdf.parse(time);//对于这种编译期异常的抛出,谁调用谁去处理
}
//调用时必须处理
public void methodService() throws ParseException{
method();
}; public void method() throws ArithmeticException{
......//对于运行期异常抛出,调用时可以不用处理
}
//调用时可以不处理
public void methodService(){
method();
}; 5.throw 和 throws区别:
throws用在方法声明后面,跟的是异常类名。 表示可能有异常 throws Exception
throw 用在方法体内,跟的是异常对象。表示一定抛出了某个异常 throw new Exception(); 6.finally特点:
finally里语句一定会执行
如果在执行finally之前jvm就退出了,那就不会执行了
7.final, finally,
final,关键字 : 修饰类:不可以被继承。修饰变量:变量不可被修改。修饰方法:方法不能被重写
finally,异常处理的一部分。用于释放资源。
finalize,是object的方法,用于垃圾回收
8.自定义异常
继承Exception
继承RuntimeException
java异常Exception的更多相关文章
- 浅谈java异常[Exception]
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...
- Java异常(Exception)
Java异常:运行期出现的错误 1. Java异常是Java提供的用于处理程序中错误的一种机制: 2. 错误指的是程序运行期间发生的异常事件,如除零溢出.数组下标越界.读取的文件不存在.... 3. ...
- Java 异常Exception e中e的getMessage()和toString()以及 e.printStackTrace();方法的区别
Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo { private static String ...
- Java 异常Exception e中e的getMessage()和toString()方法的区别
示例代码1: public class TestInfo { private static String str =null; public static void main(String[] arg ...
- Java异常 - Exception总结
这篇blog总结的比较详细了. 如下图所示,在Java中所有异常的基类均为Throwable类.有两个子类,分别为Exception和Error.其中Error主要由JVM处理,比如OutOfMemo ...
- Java异常 Exception类及其子类
C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...
- java异常——Exception、RuntimException
一.Exception和RuntimeException的区别 Exception是RuntimeException的父类,使用了 Exception 的类都必须对异常进行处理(try / throw ...
- Atitit java的异常exception 结构Throwable类
Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...
- 2015年11月26日 Java基础系列(五)异常Exception
序,异常都是标准类Throwable的一些子类的对象. Throwable类的几个方法 1 getMessage() 返回描述该异常的信息 2 printStackTrace() 把消息和栈的跟踪记录 ...
随机推荐
- Python:import 与__import__()
首先来说一下两者的区别: import指令做了两件事:1)搜索module,2)绑定到局部变量 内置函数__import__()只做了一件事:搜索module import指令执行过程中是调用__im ...
- 【PAT】B1004 成绩排名
简单题 循环输入放入结构体数组,一个sort搞定 #include <stdio.h> #include<algorithm> using namespace std; str ...
- xss挑战之旅wp
Level 1 - 180831 第一关很简单,开胃菜 payload: http://localhost/xss_game/level1.php?name=test123<script&g ...
- Vmware12安装centos系统详解
vmware12安装centos7系统详解 用虚拟机12安装centos7系统详细安装过程,后附centos7下载地址. 工具/原料 虚拟机12 centos7系统镜像 方法/步骤 1 1.百度搜索c ...
- DbContext 和 ObjectContext两者的区别
ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式.这是两者最根本的区别. 同时两者之间可以相互转换: 下面给出转换的例子 1.DbContext转为Objec ...
- 强大的Notepad++,竟然还是自由使用的
这么好用的工具,竟然还是可以自由使用的的,当然就不用去找某些软件的破解版了. 除了本身很好用,还有插件功能,插件许多也是自由使用的,利用插件就可以实现程序员需要的一个手工编辑器了.
- 【Linux基础】awk命令
1.awk命令说明 (1)awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 (2)awk处理过程: 依次对每一行进行处理,然后输出 ...
- 设计模式のVisitorPattern(访问者模式)----行为模式
一.产生背景 访问者模式是封装一些施加于某种数据结构之上的操作.一旦这些操作需要修改的话,接受这个操作的数据结构则可以保存不变.访问者模式适用于数据结构相对稳定的系统, 它把数据结构和作用于数据结构之 ...
- robotframework使用中的一些注意事项
1.关于\的转义.使用\\ 2.关于字符串的合并 3.切换到iframe,切出iframe 4.对对象右键点击 5.对对象实现按键操作,在处理一些下拉对象时需要用到. 6.当元素定位十分困难的时候,需 ...
- Linux 查看物理 CPU、内存信息
可以通过本文如下方法查看云服务器 Linux 系统的 CPU.内存相关信息: 说明: 总核数 = 物理CPU个数 × 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 × 每颗物理CPU的核数 ...