`

JAVA基础 之 异常概述

    博客分类:
  • java
阅读更多

概述:

    1.异常给初学者的感觉(笔者当时就是这个感觉,不知道其他人是否有共鸣?)

       1.异常是个什么东西?理解不了

       2.很复杂

       3.异常很“简陋”,没什么用

       4.我保证我写的程序正确性和健壮性 就用不到它了

     2.解释:

       1.异常是java用来处理程序错误的一种机制,所谓的错误不是语法错误,而是一些不可预期的运行时错误(主要)

       2.只要你会用,其实异常并不复杂(相对泛型啊 线程啊 来说)

       3.恰恰相反,异常是十分强大的,前提是你得会用

       4.记住你是人不是神,你不可能枚举出所有的错误情况,

          即便你有这个能力,真这么做了 你的程序会相当的臃肿(写1000行程序,800行在处理所有可能产生的情况,无论这种情况重要与否)。

    3.异常存在和使用的意义

       1.弥补我们人类思维缜密性的不足,处理那些不可预知的错误,保证程序正常运行。

       2.简化开发,你不用去枚举所有可能出现的情况,只需要做和业务逻辑相关的有用的,其他不重要的(相对业务逻辑来说)让异常帮你搞定。

    4.java中把非正常情况分为异常(Exception)和错误(Error),这两个类都是Throwable的子类

       异常(Exception):我们主要讨论的,程序运行时候产生的错误。

       错误(Error):虚拟机级的错误,一般我们无能力从程序的角度去处理他。

    5.下面我们通过感官来认识一下异常

package com.cxy.exception;
import java.util.List;

/** 几种常见异常的演示(异常概述)
 * @author cxy
 */
public class SomeException
{
	public static void main(String[] args)
	{
		try
		{
			test(21,0);
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		

		//访问索引是5的元素,会抛出数组越界的异常 ArrayIndexOutOfBoundsException
		try
		{
			//实际 下面这句没有必要在这里 但是为了结构层次清楚 我将这行放到了这个位置
			String[] array={"A","B","C","D","E"};  
			System.out.println(array[5]);  
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
		
		try
		{
			//实际 下面这句没有必要在这里 但是为了结构层次清楚 我将这行放到了这个位置
			List l=null; //初学者习惯这样初始化一个List
			l.get(0); //尝试访问一个空的对象,会抛出空指针(引用)异常	NullPointerException
			//当然 你会说 我不会这么傻去访问一个null的方法,这个例子只是一个简单的缩影,真实程序 可能你调用方法的时候并没有预计到这时候他是null
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
		System.out.println("程序正常运行");
		
	}
	
	/**
	 * 当b是0的时候会抛出算数错误异常		ArithmeticException
	 */
	public static void test(int a,int b)
	{
		System.out.println("a/b="+a/b);
	}
}

 

结束语:

    1.上面的程序演示了3个比较常见的异常,让大家从感官上认识一下异常

    2.程序虽然有3个异常,但是大家发现 最后仍然打印了“程序正常运行”,这就是异常价值体现之一(保证程序正常运行)

    3.控制台打印了各种异常的信息,初学者开发的时候 要注意这些异常,这也是提高开发效率的方法之一。

 

相关连接:

《JAVA基础 之 异常追踪栈》

《JAVA基础 之 异常》

 

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正

1
3
分享到:
评论
4 楼 果果菲儿 2013-02-25  
oh sorry,没看完。。。
3 楼 snkcxy 2013-02-25  
果果菲儿 写道
兄弟、异常的精华,感觉你没涉及到呢。。。。

兄弟 异常这块 我写了3篇文章 都有连接,这篇只是概述。
请教您所谓的精华是指?
2 楼 果果菲儿 2013-02-25  
兄弟、异常的精华,感觉你没涉及到呢。。。。
1 楼 sbabzc 2013-02-25  
恩,不错,学习了

相关推荐

Global site tag (gtag.js) - Google Analytics