A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飘影 中级黑马   /  2015-6-28 20:10  /  311 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 飘影 于 2015-6-28 20:13 编辑

  • 异常:程序出现不正常   Exception的父类Throwable
  • 严重问题:Error
    问题:Exception   包括:编译期问题:不是RuntimeException的异常        运行期问题:RuntimeException
  • 只有编译期的异常需要处理,其他的异常不处理。可能是代码的问题。

  • 如果异常没有处理就会默认输出:异常的名称,原因,及问题的行号等输出到控制台
  • 处理方式:try  catch  finally
    另一种Throws抛出异常。
  • catch要先抓晓得异常,再抓大的异常。
  • 异常的处理函数:string getMessage()    返回throwable的消息字符串
  • toString()   获取异常类名和异常信息,返回字符串,
    printStackTrace()获取异常类名和异常信息,以及异常出现在程序中的位置,返回void
    printStackTrace(PrintStream s)   通常用改方法将异常内容保存在日志文件中,以便查阅
  • throws  异常是自己处理不了,让调用者处理异常,
    最终会用try catch处理掉异常。
  • 编译期异常必须处理,运行时抛出后不需要处理。
  • throw异常,是不能处理需要要进行跳转时候进行。
    throw new 异常类;   在方法内部抛出异常对象

  • 如果后续程序继续运行就用try    如果不用继续,则用throws
  • finally 用于释放 资源
  • final 最终的意思,可以修饰类,类不能被继承,成员边变量,变量是常量,成员方法,方法不能被重写
    finally是异常处理的一部分,用于释放资源,一般来说代码肯定会执行。除非在他之前JVM退出,
    finalize()是个方法,Object垃圾回收器调用,用于回收垃圾。
  • 如果catch里面有return语句,finally里面的语句会执行,并且在return语句之前执行,应为要想finally不执行,只有虚拟机退出
    1. public static int  getInt() {
    2.         int a=10;
    3.         try {
    4.             System.out.println(a/0);
    5.             a=20;
    6.         } catch (ArithmeticException e) {
    7.             a=30;
    8.             return a;
    9.             /*
    10.              * return a 在程序执行到这一步时候,这里不是return a,而是return30,这个返回路径就形成了
    11.              * 但是呢,它发现后面还有finally,所以继续执行finally的内容,a=40
    12.              * 再次回到以前的返回路径,继续走return 30
    13.              *
    14.              */
    15.         }finally{
    16.             a=40;
    17.         }
    18.         return a;
    19.     }
    复制代码

  • 自定义异常,必须继承Exception或者RuntimeException。
    自定义异常内部不需要处理,就继承就行了。


评分

参与人数 1黑马币 +3 收起 理由
柳柳桑 + 3

查看全部评分

1 个回复

倒序浏览
恩恩  学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马