zoukankan      html  css  js  c++  java
  • try catch的使用throws的使用

    unchecked exception和checked exception的区别

    所有异常类型都是 Throwable 类的子类,它包含Exception类和Error类,Exception又包括checked exception和unchecked exception。

    unchecked exception:Java编译器不要求对未检查异常一定捕获或抛出,可以不做处理。此类异常通常是在逻辑上有错误,可以通过修改代码避免。在eclipse中(保存即编译)编译后此类异常发生处会报错。

    checked exception:Java编译器要求对检查异常必须捕获或抛出,代码逻辑没有错误,但程序运行时会因为IO等错误导致异常,你在编写程序阶段是预料不到的。如果不处理这些异常,程序将来肯定会出错。所以编译器会提示你要去捕获并处理这种可能发生的异常,不处理就不能通过编译

    try  catch

    在ideal中快捷键 ctrl + alt + T

    catch(Exception e){
    e.printStackTrace() ;
    }
    当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
    printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)

    捕获到异常后,如果输出错误信息对应的分别是如图

    try catch finally

    try中报错,就会执行catch里面的,catch里面可以捕获报错的信息等;一定会执行finally里的;

    这个链接说的东西有点意思:https://blog.csdn.net/mxd446814583/article/details/80355572;(这个例子中的第一个例子有点奇怪,为什么catch中return了。最后就不用return了,在我理解来看final应该也要return才行额,经过我的分析因为 finally一定会执行,try  finally 和 catch  finally 是2个情况,只有其中一种有返回就行了(就像if else一样,一种情况下必须要有返回值),当然fianlly中有需要的话,有返回值也是可以的),补充:只有静态(static)的方法才可以直接被调用;

    try catch 和throws 的区别对比

    https://blog.csdn.net/dongapple/article/details/80351969

    throws  exception的意思就是把异常抛给调用它的地方,编译都不通过的

    throws 一直抛到抛到顶级的话,就交给jvm处理了。显然这是不好的,一般用try catch 捕捉 调用带有throws exception的方法

    关键字 xxx() throws Excepton{},表示此处不处理异常,交由方法调用处处理,就是向上抛出异常
    如果将 public void main(String [] args ) throws Exception 主方法将向上抛出异常,给jvm去处理了,此时主方法内的异常 就不需要处理

    异常如果一直被throws抛出的话就会被jvm异常处理器处理了,这时jvm会跳出正常运行状态。

    所以呢,有异常必须最终在某个地方catch住,以便不让他被jvm异常处理器处理

    ////throws的作用///////////////////////////////////
    声明方法可能回避的异常

    有异常被抛出了,就要做处理,所以java中有try-catch
    可是有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常
    但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常
    void fun()throws IOException,SQLException
    {
    ...
    }
    这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候就会做好准备,比如可以这样
    try
    {
    fun();
    }catch(IOException e)
    {
    }catch(SQLException e)
    {
    }

  • 相关阅读:
    Java实现AES加密
    spring定时任务详解(@Scheduled注解)
    springBoot 项目war包部署及改为war包后资源路径错误问题
    (转)如何在maven的pom.xml中添加本地jar包
    HttpClient MultipartEntityBuilder 上传文件
    Java BigDecimal详解
    mysq带条件的分页查询数据结果错误
    jstack生成的Thread Dump日志线程 分析
    jquery将表单序列化
    java jdk动态代理学习记录
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/11330552.html
Copyright © 2011-2022 走看看