12.11exception

1.类别

  • 检查性异常:用户错误或者问题引起的异常,此类异常程序员无法预见。例如:打开一个不存在的文件,用户输入错误(在只能输数字的地方输入汉字)......

  • 运行时异常:可能被程序员避免的异常。

  • 错误:脱离程序员的控制,例如栈溢出等等。

2.异常的体系结构

3.异常处理机制

抛出异常,捕获异常。
try{
   //可能出现异常的代码段
}
catch(/*可能出现的异常类型*/){
   //发生异常后执行catch里面的代码段
   //可以输出异常类型或者结束程序(System.esit())或者打印异常栈信息
}finally{
   //处理善后工作,finally可以不要。
}



注意事项
  • try catch必须要,finally可以不用。

  • 可以有多个catch,catch捕获的异常必须是从小到大。

主动抛出异常
  • 主动抛出异常一般用在方法中使用

  • 通过throw和throws关键字,其中throw用在方法里,throws用在方法外

main()
{
   int a=1;
int b=0;
new test().sum(a, b);

}
public void sum(int a,int b)
{
if(b==0)
{
throw new ArithmeticException();
}
System.out.println(a/b);
}

结果:

throws:

main()
{
   try {
int a=1;
int b=0;
new test().sum(a, b);
}catch (ArithmeticException e)
{
e.printStackTrace();
}
}

public void sum(int a,int b) throws ArithmeticException
{
if(b==0)
{
throw new ArithmeticException();
}
System.out.println(a/b);
}
}

结果:

意义
  • 通过throws关键字可以使程序在遇到异常时继续执行下去而不是直接停止。

4.自定义异常

  • 通常是自己写一个类,该类继承Exception。

输出结果:

5.总结

最新文章

  1. 第三章 数组与字符串 UVa1588 Kickdown
  2. int(11)最大长度是多少,MySQL中varchar最大长度是多少(转)
  3. MVC4相关Razor语法以及Form表单
  4. Java中的大数处理类BigInteger和BigDecimar浅析
  5. 用 JMH 检测 Lambdas 序列化性能
  6. ASIHTTPRequest使用指南---<<翻译稿>>
  7. 【网络可靠版】Extjs4 Treegrid 使用实例
  8. 博弈论最简单例子TacTicToe
  9. 三、MapReduce学习
  10. Lua 设置table为只读属性
  11. Java-ServletContextListener
  12. Java Applet 与Servlet之间的通信
  13. <<君主论>>读后感
  14. (二)Makefile——自动编译、清理、安装软件
  15. php 将16进制数串转换为二进制数据的函数
  16. phpexcel导入导出
  17. Android之间传递数据包
  18. Android 之 应用未捕获异常处理
  19. DB2和Oracle中Date比较
  20. dede标签:arclist标签使用大全

热门文章

  1. Note -「单位根反演」学习笔记
  2. 图计算 on nLive:Nebula 的图计算实践
  3. 如何强制关闭Win10自动更新
  4. MybatisPlus字段自动填充配置
  5. log4j的替换方案
  6. [LeetCode]LCP 01. 猜数字
  7. python-通过configparser模块读取后缀为 .ini 的配置文件信息
  8. Spring Boot 学习-基础
  9. Java中的Unsafe在安全领域的一些应用总结和复现
  10. 大数据时代变局与机遇,BI数字化转型的实战攻略!