Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws
笔记:
/** 异常处理机制: 抓抛模型
* 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径!
* 2."抓", 抓住异常
* try{
* //try语句声明的变量是局部的,
* //可能出现异常的代码
* }catch(Exception e1){
* //处理的方式1, 或者显示提示信息
* }catch(Exception e2){
* //处理的方式2, 或者显示提示信息
* }finally{
* //可选,可不选
* //无论如何,这个代码是一定会执行的
* }
* 3.异常处理后,后面的代码可以继续执行!
* 4.在方法的声明出, 显式地抛出异常对象的类型
* -----------------------------------------
* 自定义异常处理
* 1.方法名() throws Class ExceptionList extends Exception
* 2.
* */
[笔记2]异常处理的5个关键字:
/**异常处理的5个关键字:
* 捕获异常: try/catch/finally
* 抛出异常: throw 可以手动抛出异常对象;例如: throw new Exception("您输入的数值存在负数!");
* 声明异常: throws 声明方法 可能要抛出的各种异常类,向上 传递异常,直到Main()函数!!:
* returnType methodName(....) throws ExceptionList{
* throw new ExceptionList("......");
* }
* class ExceptionList extends Exception{ //自定义的异常类
* }
代码1:
public class TestExcption{
public static void main(String[] args) throws IOException {
TestExcption.method1();
}
static void method1() throws IOException ,FileNotFoundException{
FileInputStream fis =new FileInputStream(new File("hello.txt"));
int ch;
while((ch =fis.read())!=-1 ){
System.out.print((char)ch);
}
fis.close();
}
}
运行1:
Exception in thread "main" java.io.FileNotFoundException: hello.txt (ϵͳÕҲ»µ½ָ¶)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at 任务138_处理异常.TestExcption.method1(TestExcption.java:35)
at 任务138_处理异常.TestExcption.main(TestExcption.java:32)
代码2:
import java.util.Scanner;
public class EcmDef {
public static void main(String[] args) {
try{
Scanner cin=new Scanner(System.in);
int i,j;
i=cin.nextInt();
j=cin.nextInt();
EcmDef.ecm(i,j);
}catch (NumberFormatException e){
System.out.println("异常:输入数据类型不一致!");
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("异常:缺少命令行参数");
}catch (ArithmeticException e){
System.out.println("异常:分母为0了");
}catch (EcDef e){
System.out.println(e.getMessage());
}
}
public static void ecm(int i,int j) throws EcDef{ //综合应用throw()和throws()!
if(i<0||j<0)
throw new EcDef("您输入的数值存在负数!");
else
System.out.println(i/j);
}
}
class EcDef extends Exception{ //自定义一个异常类, 两个构造器直接 生成即可!
public EcDef() {
}
public EcDef(String message) {
super(message);
}
}
运行2:
1 -2
您输入的数值存在负数! 1 0
异常:分母为0了
Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws的更多相关文章
- Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换
1.Java语言-关键字 关键字:被java语言赋予了特殊含义的词,特点是所有的字母都为小写. java涉及到的关键字整理: 用于定义数据类型的关键字 class interface byte sho ...
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...
- Java基础-类加载机制与自定义类Java类加载器(ClassLoader)
Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...
- Java异常控制机制和异常处理原则【转】
原文:https://www.jianshu.com/p/15872cba211d Java异常控制机制又被称为“违例控制机制”. 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行 ...
- Java基础(八)异常处理
一.异常 异常是指程序在运行过程产生的不正常情况.语法错误不算异常. 1.异常体系 Throwable:Java语言中所有错误或异常的超类:Throwable 类的子类有两个:1.Error:2.Ex ...
- php5和php7的异常处理机制 ----thinkphp5 异常处理的分析
1.php异常和错误 在其他语言中,异常和错误是有区别的,但是PHP,遇见自身错误时,会触发一个错误,而不是跑出异常.并且,php大部分情况,都会触发错误,终止程序执行,在php5中,try catc ...
- JAVA基础-反射机制
什么是JAVA的反射机制 Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其 ...
- 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...
- java:异常机制(try,catch,finally,throw,throws,自定义异常)
* String类中的格式化字符串的方法: * public static String format(String format, Object... args):使用指定的格式字符串和参数返回一个 ...
随机推荐
- 《剑指offer》数学题及其它 (牛客11.05)
比较多的思维题,涉及位运算.快速幂.二进制.约瑟夫问题.队列.贪心.dp等等. 难度 题目 知识点 ☆ 12.数值的整数次方 细节,快速幂 ☆☆ 47.求1+2+3+···+n 思维发散 ☆☆ 48. ...
- Matlab绘制阶梯形图
声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 对于Matlab的使用情况常常是这样子的,很多零碎的函数名字很难记忆,经常用过后过一段时间就又忘记了,又得去网 ...
- linux centos7 开启 mysql 3306 端口 外网访问 的实践
第〇步:思路 3306 端口能否被外网访问,主要要考虑: (1)mysql的3306 端口是否开启?是否没有更改端口号? (2)mysql 是否允许3306 被外网访问? (3)linux 是否已经开 ...
- iOS核心动画高级技巧 - 8
iOS核心动画高级技巧 - 1 iOS核心动画高级技巧 - 2 iOS核心动画高级技巧 - 3 iOS核心动画高级技巧 - 4 iOS核心动画高级技巧 - 5 iOS核心动画高级技巧 - 6 iOS核 ...
- java输入输出 -- I/O模型简述
一.简介 本文向大家介绍五种I/O模型.分别是阻塞I/O.非阻塞I/O.I/O复用.信号驱动式I/O.异步I/O等.内容参考<UNIX网络编程>,大家想进深入学习网络编程,建议去读读这本书 ...
- Hibernate一对多自关联、多对多关联
今天分享hibernate框架的两个关联关系 多对多关系注意事项 一定要定义一个主控方 多对多删除 主控方直接删除 被控方先通过主控方解除多对多关系,再删除被控方 禁用级联删除 关联关系编辑,不 ...
- [eclipse]UML之AmaterasUML 插件
软件体系结构分析软件设计模式要求给出相应设计模式源码对应的UML类图,在此之前我安装过一种UML插件,可以自动生成一个源码包对应的UML类图,但是重装过系统,所以软件包括eclipse都重新下载了新的 ...
- SpringCloud Hystrix 参数
hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKey Command PropertiesExecution ...
- (二)Spring框架之JDBC的基本使用(p6spy插件的使用)
案例一: 用Spring IOC方式使用JDBC Test_2.java package jdbc; import java.lang.Thread.State; import java.sql.Co ...
- py datetime
python datetime模块strptime/strptime format常见格式命令- [python]2011-12-23 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本 ...