JAVA学习笔记整理四(异常处理)

原创 2016年05月30日 20:52:36

异常处理的格式

异常:异常是导致程序中断运行的一种指令流,当异常发生时,如果没有进行良好的处理,则程序将会中断执行。

try{

} catch (异常类 异常对象) {

}finally{

}

不管是否出现异常,都会执行finally语句中的代码,但是finally语句可省略(此语句块的编写中尽量不出现throw与return这样的语句,以避免不必要的问题出现)。

异常的分类

异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是异常(不能直接抛出Throwable类,最大只能抛出Exception类):

Exception:一般表示的是程序中出现的问题,可以直接使用try…catch进行处理

Error:由Java虚拟机生成并抛出,是不指望程序能从其恢复过来的灾难性故障。所以程序员不需要捕捉各处理它们

抛出异常

一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫抛出异常

方法:在产生异常的方法名后面加上要抛出(throws)的异常的列表

  (public int div(int I,int j) throwsException{})

实例应用

public class ExceptionDemo {
	public static void main(String[] args) {
		Math math = new Math();
		try {
			System.out.println("除法操作" + math.div(10, 0));
		} catch (Exception e) {//进行异常的捕获
			System.out.println("异常产生:" + e);//处理异常
		}
	}
}

class Math {
	public int div(int i, int j) throws Exception{//方法可以不处理异常
		System.out.println("======计算开始=====");
		int temp = 0;
		try {
			temp = i / j;
		} catch (Exception e) {//捕获异常
			throw e;//不处理,把异常交给被调用处
		} finally {//不管如何都执行
			System.out.println("======计算结束=====");
		}
		return temp;
	}
}

//======计算开始=====
//======计算结束=====
//异常产生:java.lang.ArithmeticException: / by zero

执行过程如下:


Exception类与RuntimeException类

Exception:在程序中必须使用try…catch进行处理

RuntimeException:可以不使用try…catch进行处理,如果有异常产生,将由JVM进行处理

断言

assert  boolean 表达式 (:详细的信息);

如果表达式的结果为true,则什么错误信息都不会提示;如果为false,则会提示错误信息,如果没有声明详细的信息描述,则系统会使用默认的错误信息提示方式

public class AssertDemo {
	public static void main(String[] args) {
		int x[] = { 1, 2, 3 };
		assert x.length == 0 : "数组长度不为0";
	}
}

要想使断言起作用,在JAVA运行时,应加入“-enableassertions”参数,也可简写为“-ea”

编译程序:javac AssertDemo.java

验证程序:java –ea AssertDemo



版权声明:本文为博主原创文章,未经博主允许不得转载。

live555的有关代码学习笔记整理

一直很想做流媒体的直播,最近花时间看了有关live555的有关代码,这里隆重的推荐两篇:      http://blog.csdn.net/nkmnkm   (道长的文章,分析的很不错)   ...
  • sanmaoljh
  • sanmaoljh
  • 2015年10月07日 14:46
  • 288

3dmax笔记

1、用到最多的是平滑、线框和高光
  • luyuncsd123
  • luyuncsd123
  • 2013年12月07日 13:17
  • 631

WPF资源基础笔记

资源 WPF资源系统是一种保管一系列有用对象的简单方法,从而可以更容易的重用这些对象。 应用程序资源和程序集资源是不同的概念。 应用程序资源:可在应用程序中的其他部分使用。 程序集资源:是一块...
  • u011626294
  • u011626294
  • 2014年02月24日 12:41
  • 521

11.06笔记整理、作业以及学习心得

11.06课堂笔记及作业1、盒子模型内外边距和边框介绍当浏览器展现一个元素时,这个元素会占据一定的空间。这个空间由四个部分组成: 1. Margin 2. Border 3. Paddin...
  • huqiang0816
  • huqiang0816
  • 2017年11月06日 23:58
  • 37

Unity3D基础篇----Shader学习笔记(4)

这一篇,我们来继续学习Shader中纹理的添加以及实现纹理中凹凸的映射。
  • qq_30501909
  • qq_30501909
  • 2017年06月28日 21:56
  • 269

Oracle学习笔记(四)——上机练习一

1、define命令可以用于定义哪种变量 a、number b、char c、varchar2 d、date 【b】 Host变量主要作用是起到一个替代变量的作用,是主机环境可以和...
  • shangqing1123
  • shangqing1123
  • 2016年04月06日 20:55
  • 609

Shader学习笔记4

前两篇写的大多是表面着色器(SurfaceShader),有官方的,网上的,自己写的。自己看着都乱,当做仓库用吧。。。 然后就研究到了顶点和片段着色器,发现很自由,功能很多,但是不能处理光照。还有屏...
  • zzw8866755
  • zzw8866755
  • 2016年09月29日 20:02
  • 161

Nodejs学习笔记(四)

Nodejs用async来处理异步问题: 今天在写mysql数据库操作的时候,发现当我要查询多条sql语句的时候 前一条的语句在后一条语句执行完的时候还没有完成,这个导致很多语句的返回值都是unde...
  • zgq398749824
  • zgq398749824
  • 2016年05月31日 13:54
  • 128

Oracle学习笔记(4)------------简单查询

学习Oracle感觉有点吃力,于是到网上找了一些学习线路,来有规律的学习,效率能高一些,分享给大家 Concepts                        |                 ...
  • u011225629
  • u011225629
  • 2015年05月26日 12:37
  • 1190

TensorFlow入门(四)——MNIST入门

Softmax回归介绍 softmax回归(softmax regression)分两步:第一步为了得到一张给定图片属于某个特定数字类的证据(evidence),我们对图片像素值进行加权求和。如果这...
  • PinkRiverside
  • PinkRiverside
  • 2017年06月11日 14:08
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA学习笔记整理四(异常处理)
举报原因:
原因补充:

(最多只允许输入30个字)