知识点小结--异常

知识点小结–异常

在这里插入图片描述

1.异常 try…catch
  • 分类:

    • 异常(Exception)编译时异常/运行时异常
  • 错误(Error)无法解决

  • 1.try+catch
    程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句

    2.try+catch+finally
    程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。

    如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句

    3.try+finally
    程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那么finally块后面的代码还会被执行吗?不会!因为你没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。 这种方式中要注意的是,由于你没有捕获异常,所以要在方法后面声明抛出异常

2.异常 throws
  • 抛出异常类
  • 不知道/不想处理异常,将异常抛出给处理者
  • 子类抛出异常不能高于父类,RunTimeException 例外,原因待解
  • 在主方法调用带throws的方法要使用try…catch包装
3.异常 thorw
  • 抛出异常对象
  • 模拟虚拟机处理异常的方式

    原理为 e.printStackTrace

    			StackTraceElement[] stackTrace =e.getStackTrace();//堆栈轨迹
    			StackTraceElement element=stackTrace[0];
    			String fileName =element.getFileName();
    			String className =element.getClassName();
    			String methodName =element.getMethodName();
    			int lineNumber =element.getLineNumber();
    			System.err.format("Exception in thread \"%s\"%s : %s\r\n"
    					+ "at %s.%s(%s:%d)",methodName,className,e.getMessage(),
    					className,methodName,fileName,lineNumber);
    			//结束程序
    			System.exit(0);
    			
    			//运行结果
    			Exception in thread "main"zzy.day14.ExceptionDome : / by zero
    			at zzy.day14.ExceptionDome.main(ExceptionDome.java:9)
    
  • throw和throws的区别

    1. throw抛出的是异常对象,throws声明的是异常类;
    2. throw只能够抛出一个对象,throws可以声明多个异常类;
    3. throw表示异常已经发生,throws是一种异常的可能性;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值