异常:在java程序中也出现不正常的情况,这个就叫异常。java是面向对象的语言。任何事物都可以用类来描述,同样异常也是一种事物,java中提供了很多异常类

很多异常堆积起来叫做异常体系

Throwable -------------所有异常的父类

--------------error

--------------exception

类的完整的名称: 包名 +类名

1.toString()//对throwable 的简短描述    类的完整的名称 message的信息也会打印出来

2.getMessage()  //throwable的详细信息字符串

3.printStrackTrace  //打印的是异常时栈内存

Error  错误

错误一般是java虚拟机或者硬件导致的问题,所以我们一般不会用代码来处理错误

Exception  所有的异常都继承与Exception

异常和错误的区别:

如果程序出现不正常的情况,信息的结尾是以Error就是错误,其他的都是异常

异常的处理:

方式1:捕获处理

捕获处理的格式:

Try(){

可能发生的异常的代码

}catch(捕获的异常的类型  变量名){

异常的处理

}

捕获异常处理的注意点:

  1. 如果try中的代码处理问题之后,会继续执行try-catch以外的代码
  2. Catch中的代码,只有在try中的代码出现异常时才会执行
  3. 一个try中可以跟多个catch块,也就是说一个try可以处理多个异常
  4. Try捕获异常是从小到大来捕获异常的,否则就会报错

异常捕获到底有什么用?

目前还看不出用处,在学习javaEE就很有用

为什么不直接用一个大的异常?

为了让我们快速的找到错误点

方式2:抛出处理(throw  throws)

Throw,throws使用注意点:

  1. Throw关键字是用于方法里面的,throws用于方法的声明上
  2. Throw关键字用于方法内部抛出异常,throws用于方法声明上抛出异常
  3. Throw关键字后面只能有一个异常,throws可以声明多个异常

抛出异常使用的注意点:

  1. 如果在方法中抛出了一个异常对象,就必须在方法上声明这个异常的抛出
  2. 如果一个方法调用了抛出异常的方法,那么这个调用者就必须处理这个抛出的异常(调用者可以是调用这个方法的方法和jvm虚拟机)
  3. 如果一个方法中抛出了异常,那么throw后面的代码就不会再执行了
  4. 在一种情况下只能抛出一种异常

什么时候抛出异常?什么时候不抛?

需要通知你的调用者,你的代码可能存在问题,这个时候就需要抛出异常

如果你的代码是直接和用户打交道的时候遇到以遇到异常,就需要自己处理

有时候异常必须声明,有时候可以不声明

Exception

--------》运行时异常:抛出运行时异常,是可以不用在方法上声明异常

-------》编译时异常:抛出编译时异常,方法上必须声明异常,调用者也必须要处理

如何区分编译时和运行时异常:

属于运行时异常:是RuntimeException 或者继承与他的子类的都是运行时异常

属于编译时异常:除了运行时异常,其他的都是编译时异常(最大的异常Exception(异常超类)是编译时异常)

Finally   块

Finally 块 和try 一起用

Finally:无论出了什么问题,finally中的代码块都会执行,除非jvm退出了,代码才不会执行

Finally 非常适合做资源释放的工作,这样就可以保证我这资源文件在任何时候都可以被释放

Java中的包:相当于电脑中的文件夹

包:可以将编译的class文件放入到指定的包中

定义包:

Package  关键字定义包

不同的包中类与类之间的访问注意点:

  1. 类需要用public修饰
  2. 被访问的类要先编译出来
  3. 在其他类中使用其他类需要用到类 的全名

可以用导包来解决问题3

导包用关键字:import

导包格式:

Import 包名1 . 包名2……类名;

Import 包名 . *; 直接导入所有

推荐使用第一种导包方法

使用包的好处:

  1. 可以防止同名的的类文件的冲突
  2. 使原文件与编译后的文件分离,便于软件的发布

使用包注意点:

  1. 一个java类中只能定义一个包
  2. 包的定义是类描述的第一个语句

java的异常总结的更多相关文章

  1. java的异常

    下面是我对Java异常知识的几个小总结,也算是资源回收一下 一.Java异常的知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的.比如说,你的代码少了一个分号,那么运 ...

  2. 《java中异常和错误》

    异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...

  3. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  4. Java ConcurrentModificationException异常原因和解决方法

    Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...

  5. java 异常

    异常简介 java中有Error和Exception Error:是程序无法处理的错误,表示运行应用程序中较严重问题.大多数错误与代码编写者执行操作无关,而表示运行时JVM出现的问题. Excepti ...

  6. Java基础——异常体系

    在Java中,异常对象都是派生于Throwable类的一个实例,Java的异常体系如下图所示: 所有的异常都是由Throwable继承而来,在下一层立即分解为两个分支,Error和Exception. ...

  7. Java并发编程:Java ConcurrentModificationException异常原因和解决方法

    Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...

  8. 【转】Java ConcurrentModificationException异常原因和解决方法

    原文网址:http://www.cnblogs.com/dolphin0520/p/3933551.html Java ConcurrentModificationException异常原因和解决方法 ...

  9. JAVA基础——异常详解

    JAVA异常与异常处理详解 一.异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在java中,阻止当前方法或作用域的情况,称之为异常. java中异常的体系是怎么样的呢? 1 ...

  10. 你真的会阅读Java的异常信息吗?

    给出如下异常信息: java.lang.RuntimeException: level 2 exception at com.msh.demo.exceptionStack.Test.fun2(Tes ...

随机推荐

  1. ffmpeg视频截图命令

    ffmpeg.exe -i xxx.mp4 -y -f image2 -t 2 -s 64*320 xxx.jpg

  2. TypeScript 素描 - 函数

    /* 函数和javaScript并没有太大差别,只是增加了额外的功能,使函数有 更为强大的功能而且更易用使用 */ //现在支持函数的参数指定类型,在前面的博文中大家应该已经看到 //还可以指定函数的 ...

  3. centos手动编译安装apache、php、mysql

    64位centos 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  4. [bigdata] 使用Redis队列来实现与机器无关的Job提交与执行 (python实现)

    用例场景: 定时从远程多台机器上下载文件存入HDFS中.一开始采用shell 一对一的方式实现,但对于由于网络或者其他原因造成下载失败的任务无法进行重试,且如果某台agent机器down机,将导致它对 ...

  5. Hadoop MapReduce执行过程详解(带hadoop例子)

    https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...

  6. EditPlus-CN使用总结

    EditPlus-CN使用总结 --------------- 注册名:Free User注册码:6AC8D-784D8-DDZ95-B8W3A-45TFA ---------------- 1.如何 ...

  7. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  8. C#技术漫谈之垃圾回收机制(GC)

    GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...

  9. JDK Collection 源码分析(3)—— Queue

    @(JDK)[Queue] JDK Queue Queue:队列接口,对于数据的存取,提供了两种方式,一种失败会抛出异常,另一种则返回null或者false.   抛出异常的接口:add,remove ...

  10. Eclipse启动Tomcat时server.xml和content.xml自动还原问题

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件. 但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果. 为 ...