1.try...catch

2.异常了的继承机制

2.1基本概念

2.2常用异常

public static void main(String[] args) {
//
try {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = a / b;
System.out.println("输入的两个数相除结果为: " + c);
}
//IndexOutOfBoundsException
catch(IndexOutOfBoundsException ie){
System.out.println("数组越界");
}
//NumberFormatException
catch(NumberFormatException ne){
System.out.println("数字格式异常");
}
//ArithmeticException
catch(ArithmeticException ae){
System.out.println("算术异常");
}
catch (Exception e) {
System.out.println("未知异常");
}
}

2.3多异常捕获

Java7后提供一个catch捕获多个异常

public static void main(String[] args) {
//
try {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = a / b;
System.out.println("输入的两个数相除结果为: " + c);
}
//Multiple Exception
catch(IndexOutOfBoundsException
| NumberFormatException
| ArithmeticException me){
System.out.println("多个异常");
}
catch (Exception e) {
System.out.println("未知异常");
}
}

2.4获取异常信息

public static void main(String[] args) {
//
try {
FileInputStream i = new FileInputStream("a.txt");
}
//Multiple Exception
catch(IOException ie){
System.out.println("exception message: " + ie.getMessage());
ie.printStackTrace();
}
catch (Exception e) {
System.out.println("未知异常");
}
}
exception message: a.txt (系统找不到指定的文件。)
java.io.FileNotFoundException: a.txt (系统找不到指定的文件。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.company.project.exception.ExceptionPrint.main(ExceptionPrint.java:11)

2.5finally回收资源

2.6Checked异常和Runtime异常

2.7throw抛出异常

package com.company.project.exception;

import java.io.FileInputStream;
import java.io.IOException; public class ExceptionPrint { public static void main(String[] args)throws IOException {//这里抛出IOException
//throw exception
FileInputStream i = new FileInputStream("a.txt");
} //定义的新函数抛出指定的异常
public static void test() throws Exception {};
}

throw和throws区别:

  • throw用在方法内部,而throws用于方法的声明
  • throw使用需要new一个异常,throws是声明有什么类型的异常
  • throw后面只能有一个异常对象,throws后面一次可以多个异常

public class ExceptionPrint {
/*throws & throw*/
public static void main(String[] args)throws IOException {//这里抛出IOException
FileInputStream i = new FileInputStream("a.txt");
} //定义的新函数抛出指定的异常
public static void test() throws Exception {};
public void DoSomething(){
int a = 1;
int b = 2;
if (a != b) {
//可以定义自己的异常
throwMyException();
//也可以定义其他的异常,根据需要使用
throw new IndexOutOfBoundsException();
}
} public static void throwMyException(){
System.out.println("我自己定义的异常");
}
}

2.8自定义异常类

package com.company.project.exception;
//MyNewException。java
public class MyNewException extends Exception {
//无参构造
public MyNewException(){};
//有参构造
public MyNewException(String msg){
super(msg);
} }

2.9throw和catch一起使用

3.异常的作用

  • 捕获异常的作用是否就是输出一句话:友好的异常处理;收集定位错误情况帮助解决问题;异常情况加的应对提供帮助
  • 捕获异常是否就是不会Exception:不同的异常,需要处理的方式不一,特别是在实际项目中

4.finnaly

finnaly在有try语句块的时候才能使用,在jvm不退出的情况下一定会执行

18.异常.md的更多相关文章

  1. 零基础学python-2.18 异常

    这一节说一下异常except 继续沿用上一节的代码.我有益把文件名称字搞错.然后在结尾部分加上异常捕捉: try: handler=open("12.txt")#在这里我特别将文件 ...

  2. C++ primer plus读书笔记——第15章 友元、异常和其他

    第15章 友元.异常和其他 1. 友元类的所有方法都可以访问原有类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数.成员函数.或类为友元是由类定义的, ...

  3. Java 高效编程(Effective Java)中文第三版(补档)

    来源:sjsdfg/effective-java-3rd-chinese <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过, ...

  4. 。Java中的一些小细节

    1.main方法. ------任何一个Java程序都有一个main方法,它是程序的入口. ------当执行  “ java + 类名 “  这个命令时,JVM就会去加载这个类,并且寻找这个类中的m ...

  5. SSH项目(1)

    1.新建项目,添加jar包 tomcat jsp struts.hibernate.spring 2.配置 web.xml <?xml version="1.0" encod ...

  6. CefBrowser 复制图片解决办法

    使用的是CefSharp控件,开放出的功能比较多,但是还是有一些封闭的.例如复制图片到Clipbord,库没有提供. VC虽然看得懂,但托管代码没搞过,看得很蛋痛,而且如果有CefSharp有新版本还 ...

  7. 在不格式化原有系统盘的情况下,利用grub4dos+firadisk制作RamOS VHD Win7总结

    在不格式化原有系统盘的情况下,利用grub4dos+firadisk制作RamOS VHD Win7总结在不格式化原有系统盘的情况下,用grub4dos+firadisk安装WIN7到VHD,内存大的 ...

  8. 抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS!

    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=抛弃vboot不格盘用grub4dos+firadisk安 ...

  9. 1.2G内存试玩RAMOS_XP

    1.2G内存试玩RAMOS_XP1.为了防止做系统时出现意外,用Bootice把C盘MBR修改为Grub4dos,这样子系统如果失败,可以进入PE重做. 2.进入PE格式化C盘,格式化的时候勾选启用N ...

随机推荐

  1. html代码段

    添加icon<link rel="shortcut icon" href="img/100du.ico"/>

  2. sed初学者实用说明

     转自:http://www.codeweblog.com/sed%E5%88%9D%E5%AD%A6%E8%80%85%E5%AE%9E%E7%94%A8%E8%AF%B4%E6%98%8E/ ...

  3. shiro 身份验证

    shiro身份验证: 参考链接:http://jinnianshilongnian.iteye.com/blog/2019547 即在应用中证明是本人进行操作,一般通过用户名来证明 在shiro中,用 ...

  4. C#多线程学习笔记之(abort与join配合使用)

    今天刚开始学多线程,尽管以前用过一点点,但是只是照着网上代码抄,没有真正理解,现在回过头来想研究研究,慢慢弄懂,下面就是我在网上所找资料的例子,相信大家都看过,做了小点改动 View Code nam ...

  5. C++连接mysql及遇到的相关问题

    最近接触了很多数据库的东西,本来是一直接触的是sql server,不过由于项目需要就开始对mysql进行了连接.下面就让我这个菜鸟浅谈下经验吧. 对于C++连接mysql,我不太喜欢多下载一个软件m ...

  6. 怎样找到微信小程序功能呢?

    怎样找到微信小程序功能呢? 17年1月9号这个功能刚推出时,非常火,但我在微信中迟迟找不到微信小程序功能,微信明明更新到了最新版也没有:后来经过以下步骤才找到这个功能! 1.微信版本不能过低,这个一般 ...

  7. solr系统query检索词特殊字符的处理

    solr是基于 lucence开发的应用,如果query中带有非法字符串,结果很可能是检索出所有内容或者直接报错,所以你对用户的输入必须要先做处理.输入星号,能够检索出所有内容:输入加号,则会报错. ...

  8. windows 下安装 docker

    1. 使用阿里云的镜像进行安装: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 2. 安装完成后点击图标 “Dock ...

  9. retry之python重试机制

    安装 pip install retry Retry装饰器 retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff ...

  10. 前端通过js-xlsx获取Excel完整数据

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...