一、定义

异常(Exception) : 是指程序运行时出现的非正常情况,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制。

二、两大常见的异常类型

RuntimeException(运行时异常):主要包括“错误的类型转换”、“数组下标越界”、“数组越界”和“空指针”等,这种RuntimeException往往是由于程序的不正确导致的;

Non-RuntimeException(非运行时异常):主要包括“从一个不存在的文件中读取数据”、“越过文件结尾继续读取”、“连接一个不存在的URL”等,这种Non-RuntimeException一般是在编译器编译时产生的,通常由环境因素造成,而不是程序本身的作用导致的,例如:IOException。

三、异常处理的两种方式

①用 try......catch......(finally) 捕获异常

   try{
可能遇到的异常
} catch{
处理异常的方法
} finally{
程序输出的内容
}

(注意:①try 在程序中不能单独使用,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象;②finally语句为异常处理提供了一个统一的出口,无论在try代码块中是否发生了异常,finally块中的语句都会被执行,即finally语句无论遇到什么异常都会输出。)

②用 throws 抛出异常

  public void readFile (Srting file) throws FileNotFoundException{ }

  //格式:返回类型 + 方法名(参数列表)+ throws + 异常类型列表

四、举例说明

eg: 定义一个整型的数字69,判断它是否与ASCII码表中的字符‘T’是否相等,若不等于‘T’就继续执行代码,输出69所对应的字符。在这个判断的过程可能会出现IOException,我们就通过这个例子来比较一下异常处理的这两种方式。

①用 try......catch......(finally) 捕获异常

import java.io.IOException;

   public class ExceptionTest {
public static void read( ) {
int a = 69;
try {
while((char)a != 'T') { //判断69对应的字符是否等于‘T’,若不等则继续执行代码
System.out.println((char) a);
a = System.in.read( ); //从a中读取字符
}
}
catch(IOException e){
System.out.println("ExceptionTest");
}
} public static void main(String[] args) {
ExceptionTest.read( );
}
}
②用 throws 抛出异常

import java.io.IOException;

   public class ExceptionTest  {
public static void read( ) throws IOException {
int a = 69; while((char)a != 'T') { //判断69对应的字符是否等于‘T’,若不等则继续执行代码
System.out.println((char) a);
a = System.in.read( ); //从a中读取字符
throw new IOException(); //在方法体中,抛出异常的throw不需要加s(该异常对象可省略不写
} System.out.println("ExceptionTest");
} public static void main(String[] args) throws IOException {
ExceptionTest.read( );
}
}

Java Exception 异常处理的更多相关文章

  1. Java的异常处理

    Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally.JB的在线帮助中对这几个关键字是这样解释的:       Throws: Lists the ...

  2. java的异常处理机制(try…catch…finally)

    1 引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话.不信 ...

  3. java的异常处理简介

    异常概述 任何一种程序设计语言设计的程序在运行时都有可能出现错误,例如除数为0,数组下标越界,要读写的文件不存在等等. 捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生. 对于这些错误,一 ...

  4. Java 六种异常处理的陋习(转)

    Java 六种异常处理的陋习 原文链接:  http://www.cnblogs.com/Android-and-android/archive/2013/05/02/3054469.html 你觉得 ...

  5. 关于JAVA中异常处理的简单阐释.

    ---恢复内容开始--- 这是我的一篇要在博客园发布的随笔,主要是简单的概括一下我本次所学的关于异常处理的知识.有讲的不妥当的地方,或者有需要补充的,还请各位高人给指点,共同学习,虚心求学.谢谢啦~ ...

  6. Java开发知识之Java的异常处理

    Java开发知识之Java的异常处理 一丶异常概述 在讲解异常之前,我们要搞清楚.什么是异常. 通俗理解就是我们编写的程序出问题了.进行处理的一种手段. 比如我们的QQ.有的时候就崩溃了.比如出现xx ...

  7. Java -- 异常的捕获及处理 -- Java的异常处理机制

    7.1.4 Java的异常处理机制 在整个Java的异常处理中,实际上也是按照面向对象的方式进行处理,处理的步骤如下: ⑴ : 一旦产生异常,则首先会产生一个异常类的实例化对象. ⑵ : 在try语句 ...

  8. JAVA之异常处理(一)

    JAVA之异常处理(一) 1.异常概述 在程序的开发过程中,可能存在各种各样的错误,有些错误是可以避免的,而有些错误却是意想不到的,在Java中把这些可能发生的错误称为异常.异常类的继承关系如下图. ...

  9. Java Exception 和Error有什么区别?

    ① Exception 和Error 都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出或者捕获,它是异常处理机制的基本类型. ② Exception和Error ...

随机推荐

  1. 实例调用(__call__())

    任何类,只需要定义一个__call__()方法,就可直接对实例进行调用 对实例进行直接调用就好比对一个函数进行调用一样 __call__()还可定义参数,所以调用完全可以把对象看成函数,把函数看成对象 ...

  2. MySQL字符类型学习笔记

    目录 一.字符集和字符编码 1.1.字符集 1.2.字符编码 二.字符集排序规则 2.1.排序规则定义 2.2 .排序规则特征 三.CHAR和VARCHAR 3.1.CHAR类型 3.2.VARCHA ...

  3. java web工程的配置文件

    java web工程的配置文件 1.工程(源码依赖管理) 2.代码生成管理: 3.会话管理:servlet: 4.应用管理: 5.(分布式)资源管理:数据.数据库连接等. pom:源码管理工具 位置: ...

  4. yolov3和ssd的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/BlowfishKing/article/d ...

  5. Java开发桌面程序学习(12)——Javafx 悬浮窗提示 tooptip

    Javafx 悬浮窗提示 tooptip 鼠标悬浮在某个控件,弹出提示,效果如下: 代码: //control是某个控件 Tooltip.install(control, new Tooltip(&q ...

  6. c# winfrom 更新控件时停止刷新,解决闪烁问题

    static Dictionary<Control, bool> m_lstFreezeControl = new Dictionary<Control, bool>(); / ...

  7. 【分布式架构】--- 基于Redis组件的特性,实现一个分布式限流

    分布式---基于Redis进行接口IP限流 场景 为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃,所以我们需要对一些特定的接口进行IP限流,即 ...

  8. 深入理解JVM,类加载器

    虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称 ...

  9. 阿里云CDN接入踩坑记录

    最近负责的系统安全要求接入CDN,避免DDOS之类攻击,然后华丽丽踩了两个大坑.回顾问题原因后,发现还是相关人员都对CDN原理不够熟悉.了解导致. 坑一:默认支持的文件上传最大是300M 问题现象: ...

  10. Linux:路径的概念及路径的切换

    路径分为绝对路径和相对路径 绝对路径:从/根开头的路径为绝对路径 相对路径:以当前目录为开头的为相对路径 根目录:/ 家目录:普通用户的家目录在/home下,root用户的家目录是/root 切换目录 ...