异常
 (1)程序出现的不正常的情况。
 (2)异常的体系
      Throwable
         |--Error  错误,严重问题,我们不处理。    ·
         |--Exception 异常
            |--RuntimeException 运行期异常,我们需要修正代码
            |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
 (3)异常的处理:
    A:JVM的默认处理
       把异常的名称,原因,位置等信息输出在控制台,但是呢程序不能继续执行了。
    B:自己处理(捕获异常)
       a:try...catch...finally
          自己编写处理代码,后面的程序可以继续执行
       b:throws
          把自己处理不了的,在方法上声明,告诉调用者,这里有问题

(4)面试题
      A:编译期异常和运行期异常的区别?
       编译期异常 必须要处理的,否则编译不通过
       运行期异常 可以不处理,也可以处理
     B:throw和throws是的区别
       throw:
          在方法体中,后面跟的是异常对象名,并且只能是一个
          throw抛出的是一个异常对象,说明这里肯定有一个异常产生了
       throws:
          在方法声明上,后面跟的是异常的类名,可以是多个
          throws是声明方法有异常,是一种可能性,这个异常并不一定会产生

      

import java.io.*;
public class className
{
public void deposit(double amount) throws RemoteException
{
// Method implementation
throw new RemoteException();
}
//Remainder of class definition
}

(5)finally关键字及其面试题
      A:finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了
      B:面试题
       a:final,finally,finalize的区别?
       b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后
        会,前。
    
      C:异常处理的变形
         try...catch...finally
         try...catch...
         try...catch...catch...
         try...catch...catch...fianlly
         try...finally

     D:注意事项:

      catch 不能独立于 try 存在。

      在 try/catch 后面添加 finally 块并非强制性要求的。

      try 代码后不能既没 catch 块也没 finally 块。

      try, catch, finally 块之间不能添加任何代码。

(6)自定义异常
      继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
 (7)异常的注意实现
      A:父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常
      B:父的方法没有异常抛出,子的重写方法不能有异常抛出
      C:父的方法抛出多个异常,子的重写方法必须比父少或者小

java学习笔记 --- 异常的更多相关文章

  1. Java学习笔记--异常描述

    异常描述 1.简介 为了全面了解"异常"的概念,先来分析一个实例.假定要编写一个Java程序,该程序读取用户输入的一行文本,并在终端显示该文本.这里是一个演示Java语言I/O功能 ...

  2. Java学习笔记--异常机制

    简介 在实际的程序运行过程中,用户并不一定完全按照程序员的所写的逻辑去执行程序,例如写的某个模块,要求输入数字,而用户却在键盘上输入字符串:要求打开某个文件,但是文件不存在或者格式不对:或者程序运行时 ...

  3. 0016 Java学习笔记-异常-如果try-catch-finally中都存在return语句会怎样?

    上午在搜索"System.runFinalization"的时候,搜到 http://www.cnblogs.com/Skyar/p/5962253.html ,其中有关于try- ...

  4. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  5. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  6. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  9. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

随机推荐

  1. java版二叉树算法实现

    import java.util.ArrayList; class BinaryTree { private static class TreeNode { int data; TreeNode le ...

  2. autotools归纳

    最近接触到许多linux项目,其编译都是使用的autotools. autotools是一个自动化的编译工具.个人理解它的最主要功能就是生成Makefile. 因为直接写Makefiel,其依赖关系还 ...

  3. 关于自定义的 XIB cell上的 button如何在控制器里实现点击方法

    直接调用cell.button addTarget 的方法点击事件是失效的 这时需要你在xib中设置button的tag值 然后在返回cell的时候添加点击事件 UIButton *button = ...

  4. block之--- 基本使用

    block的类型:对象 官方文档描述如下 “Blocks are Objective-C objects, which means they can be added to collections l ...

  5. java 多线程安全问题-同步代码块

    /* 多线程的安全问题: while(true) { if(tick>0) { //线程0,1,2,3在余票为1时,都停滞在这里,之后分别获得CPU执行权,打印出0,-1,-2等错票 Syste ...

  6. GDOI2015 解题报告

    首先嘛现在发现题目这么水我还啥都没想出来正是呵呵了.接下来就口胡下GDOI的题解吧 PS:代码什么的要请联系我 题目:快戳我 Day1: T1:这个嘛,可以先找到起点所能到达的每个点然后判断该点能否到 ...

  7. 我个人的Java学习经验(一家之言)

    声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧,各位看官暂且看吧,欢迎交流.第一部分算 ...

  8. 连载《一个程序猿的生命周期》-《发展篇》 - 7.是什么阻碍了"程序猿"的发展?

    有两件事想记录一下,具有普遍性和代表性."程序猿"加了引号,是泛指一类人,也并非局限于IT行业.       山东子公司的总经理是公司大股东之一,个子不高.有些秃顶.面容显老,但看 ...

  9. Linux 搭建Zookeeper集群

    1.使用root创建zookeeper用户:     useradd zookeeper:     passwd  zookeeper; 2.登录zookeeper用户,将下载的zookeeper-3 ...

  10. hadoop2.7.2完全分布式环境搭建

      1.先使用groupadd hadoop 建立hadoop用户组 2.新建用户,useradd -d /usr/hadoop -g hadoop -m hadoop (新建用户hadoop指定用户 ...