1.什么是异常

异常定义:导致程序的正常流程被中断的事件,叫做异常。

2.异常处理

try catch finally throws

package exception;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException; public class TestException { public static void main(String[] args) { File f= new File("d:/LOL.exe"); try{
System.out.println("试图打开 d:/LOL.exe");
new FileInputStream(f);
System.out.println("成功打开");
}
catch(FileNotFoundException e){
System.out.println("d:/LOL.exe不存在");
e.printStackTrace();
} }
}

3.异常分类

异常可分为:可查异常,运行时异常和错误三种。

其中,运行时异常和错误又叫非可查异常。

Throwable

4.Throwable

Throw是类,Exception和Error都继承自该类。

所以捕捉异常的时候,也可以使用该类进行捕捉。

package exception;

import java.io.File;
import java.io.FileInputStream; public class TestException { public static void main(String[] args) { File f = new File("d:/LOL.exe"); try {
new FileInputStream(f);
//使用Throwable进行异常捕捉
} catch (Throwable t) {
// TODO Auto-generated catch block
t.printStackTrace();
} }
}

5.自定义异常

5.1 创建异常

创建一个继承Exception的类

提供两个构造方法:

1. 无参的构造方法

2. 有参的构造方法,并调用父类的带参构造方法

class EnemyHeroIsDeadException extends Exception{

    public EnemyHeroIsDeadException(){

    }
public EnemyHeroIsDeadException(String msg){
super(msg);
}
}

5.2 抛出异常

  1. 创建自定义异常类实例
  2. 通过Throw/Throws抛出该异常
package charactor;

public class Hero {
public String name;
protected float hp; public void attackHero(Hero h) throws EnemyHeroIsDeadException{
if(h.hp == 0){
throw new EnemyHeroIsDeadException(h.name + " 已经挂了,不需要要施放技能" );
}
} public String toString(){
return name;
} class EnemyHeroIsDeadException extends Exception{ public EnemyHeroIsDeadException(){ }
public EnemyHeroIsDeadException(String msg){
super(msg);
}
} public static void main(String[] args) { Hero garen = new Hero();
garen.name = "盖伦";
garen.hp = 616; Hero teemo = new Hero();
teemo.name = "提莫";
teemo.hp = 0; try {
garen.attackHero(teemo); } catch (EnemyHeroIsDeadException e) {
// TODO Auto-generated catch block
System.out.println("异常的具体原因:"+e.getMessage());
e.printStackTrace();
} }
}

【Java中级】(五)异常处理的更多相关文章

  1. java 中的异常处理

    一. 异常的概念和Java异常体系结构  异常是程序运行过程中出现的错误.本文主要讲授的是Java语言的异常处理.Java语言的异常处理框架,     是Java语言健壮性的一个重要体现. Java把 ...

  2. java中级——二叉树比较冒泡和选择排序

    上次我们说到二叉树排序比较,给出如下的题目 题目:创建五万个随机数,然后用分别用冒泡法,选择法,二叉树3种排序算法进行排序,比较哪种更快 废话不说直接上源码,可以看控制台结果 注意的是 需要我们需要上 ...

  3. Java程序设计11——异常处理

    1 概述 异常机制已经成为判断一门编程语言是否成熟的标准,除了传统的像C语言没有提供异常机制之外,目前主流的编程语言如Java.Ruby.Python都提供了成熟的异常机制.异常机制可以使程序中异常处 ...

  4. 第11章 Java异常与异常处理

    1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...

  5. JAVA动手动脑异常处理

    1>请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutEx ...

  6. Java实验五

    20145113 Java实验五 网络编程及安全 实验内容 对于客户端与服务器端:修改原代码,使其可以实现连续的传消息,并且传送文件. 对于加解密部分: 对于原先的加密只加密"hello w ...

  7. java的五种数据类型解析

    不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析. 一.简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自 ...

  8. Java Socket常见异常处理 和 网络编程需要注意的问题

    在java网络编程Socket通信中,通常会遇到以下异常情况: 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发 ...

  9. Java中实现异常处理的基础知识

    Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...

  10. JAVA首选五款开源Web开发框架

    Spring Spring是一个开源的Java/Java EE全功能栈应用程序框架,在JavaEE社区中非常受欢迎,以Apache许可证形式发布,也有.NET平台上的移植版本. Struts2 Str ...

随机推荐

  1. 台电P89s mini root教程

    根据论坛内的一些内容再结合自己的使用心得整理如下,本人双11购入P89s mini root成功  自带软件什么的都不见了 以下是个人root过程,有不一样的地方欢迎交流,说实话我也不是很懂 1.升级 ...

  2. 剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

    一.概述 1.1 数字人类的概要 数字人类(Digital Human)是利用计算机模拟真实人类的一种综合性的渲染技术.也被称为虚拟人类.超真实人类.照片级人类. 它是一种技术和艺术相结合的综合性模拟 ...

  3. Vue.js 面试题整理

    Vue项目结构介绍 build 文件夹:用于存放 webpack 相关配置和脚本. config 文件夹:主要存放配置文件,比如配置开发环境的端口号.开启热加载或开启gzip压缩等. dist 文件夹 ...

  4. windows下nginx的安装和使用

    LNMP的安装与配置 windows下的nginx安装和使用 1.1 去官网下载相应的安装包:http://nginx.org/en/download.html 1.2 解压后进入PowerShell ...

  5. Laravel --- 自动生成数据

    1.创建填充文件:php artisan make:seeder UserTableSeeder 2.在run方法里面写填充数据的代码: use Illuminate\Database\Seeder; ...

  6. jmeter安装与部署

    1.JDK组件安装 jmeter是一款java开发的测试软件,需要JDK运行环境支持,因此在安装jmeter前需要安装调试好jdk运行环境.jmeter3.2需要1.8以上版本jdk才可以正常运行.首 ...

  7. spring cloud 系列第4篇 —— feign 声明式服务调用 (F版本)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.feign 简介 在上一个用例中,我们使用ribbon+restTem ...

  8. Java NIO: Non-blocking Server 非阻塞网络服务器

    本文翻译自 Jakob Jenkov 的 Java NIO: Non-blocking Server ,原文地址:http://tutorials.jenkov.com/java-nio/non-bl ...

  9. 【工具】java 文本文档txt写出记录工具

    彩蛋!http://abowman.com/google-modules/dog/ 以下是自己小游戏生成人物经历的传记时保存txt所用到的工具类,功能简单,不多说什么,贴上代码: package co ...

  10. tomcat实现

    转载地址:https://blog.csdn.net/u014795347/article/details/52328221?locationNum=2&fps=1 以下代码纯属本人复制,而且 ...