异常
 (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文件名命名规范

    JAVA语言,有严格的大小写区分要示. JAVA源文件名必须符合以下规则: 1.必须以.java结尾.这样才能被编辑器javac.exe所编辑. 2.源文件中如果只有一个类,文件名必须与该类名相同. ...

  2. Swift 2.0 UIAlertView 和 UIActionSheet 的使用

    在 IOS 9.0 之后, UIAlertView  是 给废弃了的,虽然你要使用的话,暂时还是可以的,但是在 9.0 之后,IOS 推荐大家使用的是  UIAlertController 这个控制器 ...

  3. 【译文】什么是Docker

    What is Docker? By Tim Butler • 14 May 2015 • https://www.conetix.com.au/blog/what-is-docker Unless ...

  4. Weex系列二、显示图片

    上次我们创建了一个简单的Weex的demo. 一.常用的类 WXSDKEngine:SDK开放的绝大多数接口都在此有声明. WXLog: 用来打印日志. WXDebugTool: weex提供的对外调 ...

  5. MS office2010 ppt自动放映的设置方法

    在菜单“幻灯片放映”-“排练时间”,进入演示,然后设置每张幻灯片需要等待的时间后,手动切换到下一张(如图),一直放映结束,会提示你是否保存排练时间.然后在菜单“幻灯片放映”-“设置放映方式”,里面选择 ...

  6. MASM32快速起步

    MASM32是一个免费的软件程序,让您编辑Microsoft宏汇编程序(MASM)代码从一个基本的文本界面.它强调MASM代码各部分以不同的颜色,使其更容易扫描和检测错误.它提供了一个简单的布局程序员 ...

  7. [Kafka] - Kafka基本操作命令

    Kafka支持的基本命令位于${KAFKA_HOME}/bin文件夹中,主要是kafka-topics.sh命令:Kafka命令参考页面: kafka-0.8.x-帮助文档  -1. 查看帮助信息 b ...

  8. 细谈position属性:static、fixed、relative与absolute

    学习WEB有些时日了,对DOM中的定位概念有些模糊,特地花了一个下午的时间搜资料.整理写下这篇随笔. 首先,我们要清楚一个概念:文档流. 简单的讲,就是窗体自上而下分成一行一行,并在每行中按照从左到右 ...

  9. ForEach 循环

    在C 标签里面 有个foreach 标签,这个标签是专门来做循环的标签: <c:forEach items="${wekList}"  var="list" ...

  10. 延时循环数组 DelayLoops

    在操作mongodb数据库时,查询了数据得到一个数组,然后还得遍历这个数组,再对每个数组的值进行数据库相关的增删改查, 如果单纯的遍历会出错.所以才写了这个简单的类. var a = [1,2,3,4 ...