1.首先我们来了解什么是异常呢?

异常阻止当前方法或作用域继续执行的问题。

2.处理异常

说到处理异常,我们当然会想到 try catch finally

在java中我们会对异常的处理有更高的认识 我们会学习 throw throws等更好的处理异常

3.常见异常

4.throw关键字:语句抛出异常   throws关键字:声明异常(方法抛出一个异常)

01.throw   是语句抛出一个异常。

语法:throw (异常对象);          throw e;

02. throws  是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)   调用者必须做出处理(捕获或继续抛出)

语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......} public void doA(int a) throws Exception1,Exception3{......}

03.throws可以单独使用,但throw不能, throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使 用,然后再由处理异常的方法捕获。

04.throw语句用在方法体内,表示抛出异常,由方法体内的语句处理           throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理,必须做出处理(捕获或继续声明)

05.throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常,使得提醒必须做出处理。否则编译是不会通过的。          throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

eg:

public void dothing(int a,int b) throwsException1,Exception3 {try{//......

}catch(Exception1 e){throwe;

}catch(Exception2 e){

System.out.println("自己打印提示,不抛出");

}if(a!=b)throw new Exception3("自定义异常");

}

代码块中可能会产生3个异常,(Exception1,Exception2,Exception3)。 如果产生Exception1异常,则捕获之后再抛出,由该方法的调用者去处理。 如果产生Exception2异常,则该方法自己处理了(即打印出字符串:自己打印提示,不抛出)。所以该方法就不会再向外抛出Exception2异常了,void dothing() throws Exception1,Exception3 里面的Exception2也就不用写了(当然你写了也不会报错的),throws 就是声明可能抛出的错误,而Exception2 并未做出抛出操作。 而Exception3异常是该方法的某段逻辑出错,程序员自己做了处理,在该段逻辑错误的情况下抛出异常Exception3,则该方法的调用者也要处理此异常。

java程序throw异常,Java中处理异常throw和throws相关推荐

  1. 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理

    编写高质量代码改善java程序的151个建议--[110-117]异常及Web项目中异常处理 原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保 ...

  2. 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...

    java程序在主线程中判断各个子线程状态的操作 每个子线程在队列为空时会wait等待其他线程添加新url到队列,到最后所有子线程都取不到url时也会都wait住,要在主线程中判断如果所有的子线程都是w ...

  3. Java程序向MySql数据库中插入的中文数据变成了问号

    找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...

  4. java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...

    阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...

  5. Java程序员在面试中不通过的五个原因

    如今正是毕业生找工作的高峰期,那么在面试Java程序员的过程中会出现什么问题呢?有哪些问题是初入职场的Java程序员在面试中最容易犯的呢?下面,我总结了Java程序员在面试中不通过的五个原因,作为大家 ...

  6. 39岁java程序员,待业中,对前途很迷茫,每天都很焦虑,不知道该怎么办?

    39岁java程序员,待业中,对前途很迷茫,每天都很焦虑,不知道该怎么办?第一次看到这个问题,觉得挺无奈的.39岁这个年纪,工作应该也有10多年,对于程序员岗位,如果平时没有放弃学习,相信专业技术能力 ...

  7. matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded

    matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...

  8. java跟python对比_【多年的Java程序员总结Java与Python的对比 】

    多年的Java程序员总结Java与Python的对比 作为一个有多年职场经验的技术员,每当我遇到同行时,我都会问一句"你现在用的是什么语言?你喜欢用哪种语言?"至于答案,容后再说. ...

  9. Java程序设计基础——简单Java程序

    简单Java程序 一.Java应用程序 1.HelloWorldApp 源代码: 编译运行: 二.Java小应用程序 1.HelloApplet 源代码: 编译运行: 2.firstApplet 源代 ...

  10. 越来越多的Java程序员转行Java大数据...

    JAVA的精密,强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入IT行业,首选的第一门语言就是JAVA. 但是,在未来肯定是大数据的天下,人工智能的爆发,将 ...

最新文章

  1. 应用设计模式进行重构来消除坏味道
  2. 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式...
  3. python有哪些作用-python能用来做什么?Python都有哪些逆天的功能
  4. vc c语言图片处理,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  5. Ubuntu开机启动Python脚本
  6. 【luogu1709】小B的询问 - 莫队
  7. python内存分配失败_关于python:如何避免[Errno 12]无法分配使用子进程模块导致的内存错误...
  8. 基于遥感影像实现三种方法提取枣树面积精度分析
  9. 菜鸟学Linux 第041篇笔记 常见系统故障排除
  10. Unicode中文和特殊字符的编码范围 及部分正则
  11. 笔记本电脑桌面的计算机图标不见了,笔记本电脑桌面显示没了怎么办呢
  12. 洛谷 P3939 数颜色(主席树)
  13. 有什么软件可以测试近视的度数,在家怎样测试视力度数,手机微信视力检测
  14. 【openMP并行计算】计算π
  15. 在电脑中安装群辉NAS
  16. 有感于技术出身的创业若干思考
  17. FullCalendar日历插件的简单使用(版本4.2.0)
  18. asio boost 异步错误处理_boost asio 学习(五) 错误处理
  19. 不要在做程序员了,向产品经理开炮
  20. 一把智能锁真的能防盗吗?有你物联智能家居揭秘你所忽略的防盗漏洞

热门文章

  1. ubuntu22.04 耳机没声音 [已解决]
  2. 全新版大学英语综合教程第三册学习笔记(原文及全文翻译)——8 - A Clone Is Born(克隆生命诞生了)
  3. java根据逗号拆分_Excel拆分单元格文本,一列变多列,你学会了吗?
  4. 1056. Confusing Number
  5. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
  6. Dockerfile中ADD文件用法
  7. python爬虫-北京租房可视化分析
  8. 神经网络编程的34个案例,人工神经网络编程内容
  9. java 地图渲染_MapXtreme for java 地图渲染
  10. Java小白 学习笔记(三)——面向对象