在程序运行时,我们不能保证所有服务和方法都是正确的,如果发生问题报错会导致程序崩溃,所以需要对一些可以预见的错误进行异常处理,通过throw去抛出一个异常,然后用try..catch..将要执行的该方法括起来,通过它去捕获该方法可能throw的异常并进行处理
 
throw:抛出异常(只有方法抛出了异常,才能被try...catch...捕获)
throw new FileIsTooSmallExcepton();
 
捕获异常:
try{
     要执行的方法
}catch(xxException e){
     接收到xxException异常时的操作
}catch(Exception e){
     接收到Exception的异常时执行的代码,可以catch捕获多个异常,但是范围大的不能在上面,只能在下面(上面的异常不能包含后面catch的异常类型)
     
}
final{
     无论是否有异常都会执行的部分
}
说明:
1.catch()中的是一个Exception类型的异常参数e,这一段只有抛出异常的时候才会执行
2.所有的异常类型都是继承自Exception,而Exception继承自Throwable。所以可以用Exception来捕获所有类型的异常,异常具有方法getMessage()和printStackTrace()
3.如果方法声明了throw异常,则调用该方法时编译器会提示使用try...catch…(RuntimeException除外)
4.如果在catch后加了final,则final{}中的代码肯定会执行,无论是否有异常(如果try或catch有return,则也会先执行final后再return)
5.捕获异常可以写多个catch,捕获不同的异常类型,但是大小很重要,范围大的放下面,如果小的放下面就永远执行不到了
 
不想处理异常:
如果不想处理异常,那么在方法名后throw可能出现的异常
public void foo() throws ReallyBadException{
     调用有风险的方法,这个方法有可能throw一个ReallyBadException异常
}
 
但是如果main函数也通过throw来躲避异常,如果真的发生异常,程序就出错了。
 
 

java基础六 [异常处理](阅读Head First Java记录)的更多相关文章

  1. java基础十[包、Jar存档文件和部署](阅读Head First Java记录)

    将Java的class文件生成为可执行的Java应用程序.Java应用程序有三种:完全在本机执行的Jar(例如本机的GUI可执行程序):完全在服务器端远程执行的(例如浏览器来进行存取):介于两者之间的 ...

  2. java基础系列--Exception异常处理

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...

  3. Java基础(七)--Exception异常处理

    发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...

  4. Java基础__Java中异常处理那些事

    一.Exception 类的层次 所有的异常类是从 java.lang.Exception 类继承的子类. Exception 类是 Throwable 类的子类.除了Exception类外,Thro ...

  5. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

  6. Java基础学习总结(44)——10个Java 8 Lambda表达式经典示例

    Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Ja ...

  7. 夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...

  8. 夯实Java基础系列16:一文读懂Java IO流和常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  9. [学习笔记]java基础Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

    本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 内容简介: ------------ ...

随机推荐

  1. orace学习操作(2)

    一.Oracle视图 视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑.主要就是为了方便和数据安全: 实际当中的数据依然存在我们的实际表里面,只不过取数据的时候根据这个视图(子查询)从实际 ...

  2. [转]链接中 href='#' 和 href='###' 的区别以及优缺点

    本文来自:http://c.jinhusns.com/bar/t-829 链接中 href='#' 和 href='###' 的区别以及优缺点 上一篇 下一篇近乎_问阳 发表于:2013-09-09 ...

  3. python3 from Tkinter import * 和import Tkinter as tk两个区别import Tkinter

    原文https://stackoverflow.com/questions/15974787/difference-between-import-tkinter-as-tk-and-from-tkin ...

  4. 在VM克隆CENTOS以后,网卡的处理过程

    会发现克隆CENTOS以后,网卡eth0无法启动.处理步骤如下:1. vi /etc/sysconfig/network-scripts/ifcfg-eth0删除HWADDR地址那行删除UUID的那行 ...

  5. Notepad++ 删除空白行的方法(转)

    Notepad++ 是我特别喜欢的一款编程工具.在安装后就可以轻松使用了.Notepad++ 上提供了很多方便的插件以实现更多的扩展,当然自身已经比较强大好用了.如果你遇到文本中间有大量的空白行的话, ...

  6. js基础和运算符

    1.什么JavaScript?    运行环境 :    浏览器                    是一种具有安全性的客户端的脚本语言     用来实现与web页面交互 脚本语言:语言嵌入到htm ...

  7. nodejs——压缩文件_archiver

    工作需要,由于html无法访问并下载带有中文的路径,例子:“127.0.0.1::8088/files/第一张图片.jpg”,所以想到了先将原图片压缩并命名为不带中文的文件名,下载后用户自行解压缩的方 ...

  8. List集合的clear方法

    一 . list.clear()底层源码实现 在使用list 结合的时候习惯了 list=null :在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候 1.lis ...

  9. 代码: 返回页面顶部 jquery

    jquery代码: 返回页面顶部 <script type="text/javascript" src="http://cdn.bootcss.com/jquery ...

  10. OpenACC 《大规模并行处理器编程实战》教材讲解

    ▶ <大规模并行处理器编程实战>第15章,关于OpenACC 的部分,散点 ● OpenACC 中,主机存储器和设备存储器是分开处理的,程序员只要制定要传输的存储器对象即可,编译器会自动生 ...