本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1410|回复: 0
打印 上一主题 下一主题

第二期Android菜鸟饭团#Java学习#第四课 活动笔记

[复制链接]
跳转到指定楼层
1#
发表于 2015-10-24 10:20:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xiao_ming 于 2015-10-24 17:34 编辑

第二期Android菜鸟饭团#Java学习#第四课 活动笔记


一、异常处理(运行期出现的错误)
  • Java异常是Java提供的用于处理程序中错误的一种机制。
  • 所谓错误是指在程序运行的过程中发生的一些异常事件(如,除0溢出,数组下标越界,所要读取的文件不存在)
  • 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为一场的发生而阻断 或生产不可预见的结果。
  • Java程序的执行过程中如出现异常事件,可以生成一个异常类现象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常。
  • 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。


二、异常的分类
  • Error:称为错误,由Java虚拟机生成并抛出,包括动态连接失败,虚拟机错误等,程序对其不做处理。
  • Exception:所以异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕捉。
  • Runtime Exception:一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕捉将会对程序可读性和运行效率影响很大,因此由系统自动检测并将它们缺省的异常处理程序(用户可不必对其处理)


三、捕获异常
  • Try catch用法:

使用try和catch关键字可以捕获异常。try/catch代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用 try/catch的语法如下:

try{
   // 程序代码
}catch(ExceptionName e1){
   //Catch 块}       


Catch语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try后面的catch块就会被检查。
如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样。

三、多重捕获块
一个try代码块后面跟随多个catch代码块的情况就叫多重捕获。
多重捕获块的语法如下所示:

try{
    // 程序代码
}catch(异常类型1 异常的变量名1){
    // 程序代码
}catch(异常类型2 异常的变量名2){
    // 程序代码
}catch(异常类型2 异常的变量名2){
    // 程序代码
}


四:异常抛出:
  • throw throws关键字:

如果一个方法没有捕获一个检查性异常,那么该方法必须使用throws 关键字来声明。throws关键字放在方法签名的尾部。也可以使用throw关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。
下面方法的声明抛出一个RemoteException异常:

import java.io.*;public class className{
   public void deposit(double amount) throws RemoteException
   {
      // Method implementation
      throw new RemoteException();
   }
   //Remainder of class definition}


  • finally关键字

finally关键字用来创建在try代码块后面执行的代码块。无论是否发生异常,finally代码块中的代码总会被执行。在finally代码块中,可以运行清理类型等收尾善后性质的语句。finally代码块出现在catch代码块最后,语法如下:

try{
    // 程序代码
}catch(异常类型1 异常的变量名1){
    // 程序代码
}catch(异常类型2 异常的变量名2){
    // 程序代码
}finally{
    // 程序代码
}


注意下面事项:
Catch不能独立于try存在。
在try/catch后面添加finally块并非强制性要求的。
try代码后不能既没catch块也没finally块。
try, catch, finally块之间不能添加任何代码。

五、声明自定义异常
         在Java中你可以自定义异常。编写自己的异常类时需要记住下面的几点。
所有异常都必须是Throwable的子类。
如果希望写一个检查性异常类,则需要继承Exception类。
如果你想写一个运行时异常类,那么需要继承RuntimeException 类。可以像下面这样定义自己的异常类:

class MyException extends Exception{}

只继承Exception 类来创建的异常类是检查性异常类。
下面的InsufficientFundsException类是用户定义的异常类,它继承自Exception。
一个异常类和其它任何类一样,包含有变量和方法。
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。
Android菜鸟饭团南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
把你的个人信息和申请理由快快发送到android@chuang1.net,前来加入我们吧  


ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表