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):使用指定的格式字符串和参数返回一个 ...
随机推荐
- ubuntu desktop 登录root账户
有一些操作,登录root账户比较方便,但是ubuntu桌面版默认不允许这样,需要更改root账户的默认密码才可以登录,解决方法是按以下顺序输入: sudo passwd <你现在的用户的密码&g ...
- 【C/C++开发】C++队列缓存的实现
C++队列缓存的实现 为什么使用队列缓存 c++的队列缓存主要用于解决大数据量并发时的数据存储问题,可以将并发时的数据缓存到队列中,当数据量变小时再匀速写入硬盘中. 引用queue队列 在头文件中引用 ...
- 如何找到linux centos7 中 redis.conf
我们假设redis正在运行,但是我们找不带redis的配置文件redis.conf. 正确的示范: (1)systemctl status redis ● redis.service - LSB: s ...
- kotlin基本数据类型
通过idea创建kotlin项目: 创建kotlin文件 package com.czhappy.chapter01 var aBoolean:Boolean = true var anInt:Int ...
- 日常工作问题解决:redhat6.9--解决yum功能不能正常使用和配置yum源
1.问题描述 解决RedHat6.9下yum功能不能用问题: 在redhat6.9下使用yum安装时,会提示:This system is not registered to Red Hat Subs ...
- Spring之23:AbstractBeanFactory,Bean的加载
<spring源码之:循环依赖> AbstractBeanFactory的作用:别名管理,单例创建与注册,工厂方法FactoryBean支持. 由图我们直接的看出,AbstractBean ...
- Java 最常见 200+ 面试题 + 全解析
本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...
- QComboBox的currentIndexChanged信号死循环问题
connect(m_pComboBoxDevice, SIGNAL(currentIndexChanged(int)), this, SLOT(sltComboBoxDeviceCurrentText ...
- 【全排列+子序列】Color
[题意] 这个题目就是问,是否存在每个人对应每一种颜色,如果存在则输出字典序最小的. 否则输出-1 [题解] 利用next_permutation来构造36种情况.记住最后还需要排序一遍. 然后用子序 ...
- C# Entity Framework The ObjectContext instance has been disposed and can no longer be used for operations that require a connection
The ObjectContext instance has been disposed and can no longer be used for operations that require a ...