Java程序设计基础之异常处理

负二代滴小情绪

负二代滴小情绪

2016-02-19 13:44

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Java程序设计基础之异常处理的教程,热爱PS的朋友们快点看过来吧!
早期的编程语言(比如C语言)没有异常处理,通常是碰到错误返回一个非凡的值或设定一个标志,并以此判定是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。 !-- frame contents -- !-- /frame contents -- 于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“on error goto”,而Java则在C++基础上建立了新的异常处理机制。
  
  Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。
  
  异常处理还有一个好处是在你不能确定和处理异常时,你可以不处理,而把问题提交上去。另一方面,异常处理机制使得错误处理代码更有条理,更便于维护。下面,我们看看在Java中如何处理异常。
  
  Java中的异常类
  
  在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕捉到这个异常并进行处理。
  
  Throwable类有两个标准子类:java.lang.Error和java.lang.Exception即错误和异常。错误Error类一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕捉,将导致应用程序中断。异常Exception类则是指一些可以被捕捉且可能恢复的异常情况,如数组下标越界ArrayIndexOutOfBoundsExcepton、数字被零除产生异常ArithmeticException、输入/输出异常IOException等。
  
  提示:Java编译器要求Java程序必须捕捉或声明所有非运行时的异常,如:FileNotFoundException、IOException等。因为,对于这类异常来说,假如程序不进行处理,可能会带来意想不到的结果。但运行时出现异常可以不做处理,因为这类异常很普遍,全部处理可能对程序的可读性和运行效率产生影响。
  
  Java异常处理形式
  
  Java的异常处理是通过5个要害词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,假如出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
  
  下面是Java异常处理程序的基本形式:
  
  try 
  //执行时程序块
  
  catch ExceptionType1e
  //对ExceptionType1的处理
  
  catch ExceptionType2e
  //对ExceptionType2的处理
  throw e
  //再抛出这个“异常”
  
  finally 进入讨论组讨论。
  try程序块和catch语句
  
  碰到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try块内的语句都完成。假如下一级的try语句没有对某种“异常”进行处理, 堆栈就会展开,直到碰到有处理这种“异常” 的try语句。在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。
  
  提示:捕捉异常的第一步就是用try…选定你要捕捉异常的范围,在执行时,括号内的代码会产生异常对象并被抛出。然后你就可以用catch块来处理异常了。
  
  throw语句和throws语句
  
  throw语句用来明确地抛出一个“异常”。首先,你必须得到一个Throwable类或其它子类产生的实例句柄, 通过参数传到catch子句,或者用new语句来创建一个实例。
  
  下面是throw语句的通常形式:
  
  throw ThrowableInstance
  提示:执行throw语句后,运行流程将立即停止,throw的下一条语句也将暂停执行。这里new运算符用于创建一个Throwable类的实例,在后文的面向对象编程一文中将具体讲解。
  
  throws语句用来标明一个成员函数可能抛出的各种“异常”。对大多数Exception子类来说,Java编译器会强迫你声明在一个成员函数中抛出的“异常”的类型。假如“异常”的类型是Error或RuntimeException,或它们的子类,这个规则不起作用。假如你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。
  
  提示:当然,你可能对上面的说明不是很明白,不过不要紧,编译运行下面的Java程序(已经为你做了具体的注释)你会理解很多!
  
  现在我们用下面的例程来说明问题:
  
  class ThrowsDemo  //类名,相应的java源文件应该保存成:ThrowsDemo.java
  static void procedure  throws Illegal
  AccessException //throws语句
  //抛出IllegalAccessException类型的异常
  System.out.println″inside procedure″ //输出文本信息,以说明是在执行proced
  ure方法时抛出了异常
  throw new IllegalAccessException″de
  mo″ //新生成一个Throwable类实例,然后抛出异常
  
  public static void mainString args //main方法开始,程序从此处执行
   try  //try语句块开始
  procedure  //调用procedure方法,该方法将Throw(抛出)异常信息
  
  catch IllegalAccessException e
   //处理IllegalAccessException类型的异常,catch语句块
  System.out.println″caught ″ + e 
  编程并执行程序,其过程如下:
  
  
展开更多 50%)
分享

猜你喜欢

Java程序设计基础之异常处理

编程语言 网络编程
Java程序设计基础之异常处理

Java Applet程序设计基础

编程语言 网络编程
Java Applet程序设计基础

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java程序设计基础入门之慨述

编程语言 网络编程
Java程序设计基础入门之慨述

Authorware 程序设计基础

Authorware 设计软件 平面设计软件 广告设计软件
Authorware 程序设计基础

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Java多线程程序设计

Java JAVA基础
Java多线程程序设计

WAP 与 PHP 程序设计之基础篇

PHP
WAP  与  PHP  程序设计之基础篇

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

菜鸟你别烦 高手为你解析重装系统后不能上网原因

菜鸟你别烦 高手为你解析重装系统后不能上网原因

将Java程序作成exe文件的几种方法

将Java程序作成exe文件的几种方法
下拉加载更多内容 ↓