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):使用指定的格式字符串和参数返回一个 ...
随机推荐
- OneNote2016代码高亮插件的安装与使用
OneNote2016代码高亮插件的安装与使用 使用效果 我觉得CSDN和博客园上面的许多讲解都不是很清晰,最后还是我自己弄好的.这里分享一下: 第一步要确认自己OneNote的版本是32位的还是64 ...
- 【计算机视觉】Selective Search for Object Recognition论文阅读1
Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...
- CardView的使用(可以实现圆角控件)
简介:ardView继承自FrameLayout,它是一个带圆角背景和阴影的FrameLayout 一些什么实现方式就不赘述了,直接上用法 CardView的常用属性 1.设置背景颜色 app: ...
- UIPath工具来取得邮件里面的添付文件及邮件内容
下图是得到Outlook邮件附件的示意图 下面的图是对UIPath的属性的设定.最重要的是两个文件夹要保持一致.
- jqGrid常用方法
var jqGrid = $("#jqGrid"); // 获取选中行id[单行],test1就是最先一个行id var test1 = jqGrid.jqGrid("g ...
- Feeding Time 【bfs求最大连通块】
题目链接:https://ac.nowcoder.com/acm/contest/1870/J 题目大意:求最大的连通块是多大 主要是为了防止自己忘记bfs怎么写..... #include<s ...
- Linux 线程取消(pthread_cancel)
基本概念 pthread_cancel调用并不等待线程终止,它只提出请求.线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint).取消 ...
- 控制层解析post请求中json数据的时候,有些属性值为空
原因: 1.默认json数据解析的时候,值会赋给键的首字母是小写的封装的bean中的属性,如果没有首字母小写的属性,也不会报错.即bean中有getXXX方法时,从json到model会增加xxx属性 ...
- S03_CH10_DMA_4_Video_Stitch视频拼接系统
S03_CH10_DMA_4_Video_Stitch视频拼接系统 10.1概述 注意:本课程和上一课程<S03_CH09_DMA_4_Video_Switch视频切换系统>基本相同,不同 ...
- 少儿编程 | 01.Scratch 3.0简介
欢迎参加这套Scratch3.0少儿编程课程的学习.本系列课程将通过视频和图文的方式进行(视频制作中,后续会发布).如果喜欢本系列课程,欢迎点击订阅关注或者转发. 这是本系列课程的第一课,主要是给家长 ...