18.异常.md
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的更多相关文章
- 零基础学python-2.18 异常
这一节说一下异常except 继续沿用上一节的代码.我有益把文件名称字搞错.然后在结尾部分加上异常捕捉: try: handler=open("12.txt")#在这里我特别将文件 ...
- C++ primer plus读书笔记——第15章 友元、异常和其他
第15章 友元.异常和其他 1. 友元类的所有方法都可以访问原有类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数.成员函数.或类为友元是由类定义的, ...
- Java 高效编程(Effective Java)中文第三版(补档)
来源:sjsdfg/effective-java-3rd-chinese <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过, ...
- 。Java中的一些小细节
1.main方法. ------任何一个Java程序都有一个main方法,它是程序的入口. ------当执行 “ java + 类名 “ 这个命令时,JVM就会去加载这个类,并且寻找这个类中的m ...
- SSH项目(1)
1.新建项目,添加jar包 tomcat jsp struts.hibernate.spring 2.配置 web.xml <?xml version="1.0" encod ...
- CefBrowser 复制图片解决办法
使用的是CefSharp控件,开放出的功能比较多,但是还是有一些封闭的.例如复制图片到Clipbord,库没有提供. VC虽然看得懂,但托管代码没搞过,看得很蛋痛,而且如果有CefSharp有新版本还 ...
- 在不格式化原有系统盘的情况下,利用grub4dos+firadisk制作RamOS VHD Win7总结
在不格式化原有系统盘的情况下,利用grub4dos+firadisk制作RamOS VHD Win7总结在不格式化原有系统盘的情况下,用grub4dos+firadisk安装WIN7到VHD,内存大的 ...
- 抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS!
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=抛弃vboot不格盘用grub4dos+firadisk安 ...
- 1.2G内存试玩RAMOS_XP
1.2G内存试玩RAMOS_XP1.为了防止做系统时出现意外,用Bootice把C盘MBR修改为Grub4dos,这样子系统如果失败,可以进入PE重做. 2.进入PE格式化C盘,格式化的时候勾选启用N ...
随机推荐
- 微信小程序--swiper组件
<view class='swiper-container'> <swiper indicator-dots="true" autoplay=" ver ...
- 利用jQuery与.ashx完成简单的Ajax
在ASP.NET同样可以与其它编程语言一样,利用前台的Ajax技术,只是需要注意的是,后台的处理程序不再是一个aspx页面中的Page_Load,而且ASP.NET独有的“一般处理程序”.ashx,下 ...
- 查看linux文件目录的大小和文件夹包含的文件数
du -h --max-depth=|sort -n du -h --max-depth=|grep G|sort -n df -h 清理/var/log # 清除 # 一定要以root身份来运行这个 ...
- day15(模块引用笔记)
import spam文件名是spam.py,模块名则是spam# 首次导入模块发生?件事# 1. 会产生一个模块的名称空间# 2. 执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间 ...
- springmvc接收前台(如ajax)传来的数组list,set等图文详解
ref:https://blog.csdn.net/wabiaozia/article/details/50803581 前言: 相信很人都被springmvc接收数组问题折磨过,查过几个解决 ...
- MySQL通过游标来实现通过查询结果集循环
/*我们有时候会遇到需要对 从A表查询的结果集S_S 的记录 进行遍历并做一些操作(如插入),且这些操作需要的数据或许部分来自S_S集合*/ /*临时存储过程,没办法,不能直接在查询窗口做这些事.*/ ...
- 自动创建表出错 type=InnDB
因为type=InnoDB在5.0以前是可以使用的,但5.1之后就不行了 只需要修改配置: hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDia ...
- 网易云音乐mp3外链、真实地址下载方法
一个网易音乐外链地址长期有效,很简单的方法: 第一步打开网易云音乐,随便找到一首歌,播放,复制网址的ID, 例如:杨钰莹的心雨,网址是: http://music.163.com/#/song?id= ...
- (转)CSS书写规范、顺序
原文地址 写了这么久的Css,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...