20.java当中的异常

  • 什么是异常
    • 异常:中断了正常指令流的事件
  • 异常的分类

    • uncheck exception
  1. classTest{
  2. publicstaticvoid main(String args[]){
  3. System.out.println(1);
  4. //uncheck exception
  5. int i =1/0;
  6. System.out.println(2);
  7. }
  8. }

结果:

D:\work\src>javac Test.java

D:\work\src>java Test

1

Exception in thread "main" java.lang.ArithmeticException: / by zero

at Test.main(Test.java:5)

    • check exception
      • 包括exception这个类以及exception除了runtimeException之外的子类
  1. classTestCheck{
  2. publicstaticvoid main(String args []){
  3. //check exception
  4. Thread.sleep(1000);
  5. }
  6. }

结果:

D:\work\src>javac TestCheck.java

TestCheck.java:4: 错误: 未报告的异常错误InterruptedException; 必须对其进行捕获或声明以便抛出

Thread.sleep(1000);

  • try...catch...finally结构的使用方法
    • 如果try里面的代码出现异常就执行catch中的代码,不出异常就不执行catch中的代码,而finally中的代码都会执行,称为异常的窗口
    • 对异常进行捕捉
  1. classTest{
  2. publicstaticvoid main(String args[]){
  3. System.out.println(1);
  4. //uncheck exception
  5. try{
  6. //打开文件
  7. System.out.println(2);
  8. int i =1/0;
  9. System.out.println(3);
  10. }
  11. catch(Exception e){
  12. e.printStackTrace();
  13. System.out.println(4);
  14. }
  15. finally{
  16. System.out.println("finally");
  17. //关闭文件
  18. }
  19. System.out.println(5);
  20. }
  21. }

结果:

D:\work\src>javac Test.java

D:\work\src>java Test

1

2

java.lang.ArithmeticException: / by zero

at Test.main(Test.java:8)

4

finally

5

  • throw的作用
    • 如果一个异常java虚拟机无法判断,可以在出现异常的时候,生成一个异常对象,然后用throw+异常对象,抛出异常
  1. classUser{
  2. privateint age;
  3. publicvoid setAge(int age){
  4. if(age <0){
  5. RuntimeException e =newRuntimeException();
  6. throw e;
  7. }
  8. this.age = age;
  9. }
  10. }
  1. classTest{
  2. publicstaticvoid main(String args []){
  3. User user =newUser();
  4. user.setAge(-20);
  5. }
  6. }

结果:

D:\work\src>javac *.java

D:\work\src>java Test

Exception in thread "main" java.lang.RuntimeException

at User.setAge(User.java:6)

at Test.main(Test.java:4)

  • throws的作用
    • 声明一个函数有可能会出现异常
    • 函数不会处理,而在调用这个函数的地方,对这个异常进行处理
  1. classUser{
  2. privateint age;
  3. publicvoid setAge(int age) throws Exception{
  4. if(age <0){
  5. RuntimeException e =newRuntimeException("年龄不能为负数");
  6. throw e;
  7. }
  8. this.age = age;
  9. }
  10. }
  1. classTest{
  2. publicstaticvoid main(String args []){
  3. User user =newUser();
  4. try{
  5. user.setAge(-20);
  6. }
  7. catch(Exception e){
  8. System.out.println(e);
  9. }
  10. }
  11. }

结果:

D:\work\src>javac *.java

D:\work\src>java Test

java.lang.RuntimeException: 年龄不能为负数

来自为知笔记(Wiz)

时间: 2024-10-06 21:24:32

20.java当中的异常的相关文章

Java当中的异常

异常:中断了正常指令流的事件,是JVM虚拟机产生的对象 异常是程序运行时产生的,和编译无关 class Test{ public static void main(String args[]){ System.out.println(111111); int i = 1 / 0; System.out.println(222222); } } 以上为算术异常(属于RuntimeExcepiotn的子类)信息,当出现异常后,将不再执行异常后面的语句. 异常的分类:由JDK提供的类 所有的异常类都是

Java当中的异常2

1.throw的作用 如果一行有可能代码抛出Execption对象或者check exception 就必须对这行代码进行处理 2.throws的作用 Throws表明这个类或者方法可能会产生一个指定类型的异常 在哪调用在哪处理

Java当中的异常(一)

1. 什么是异常 2. 异常的分类 3. try...catch..finally结构的使用方法 1. 什么是异常 异常:中断了 正常指令流的 事件 异常 是在程序运行的时候产生的 1 class Test{ 2 public static void main(String args []){ 3 System.out.println(1); 4 int i = 1 / 0 ; 5 System.out.println(2); 6 } 7 } 2. 异常的分类 当出现异常时, 虚拟机会生成一个异

第48节:Java当中的集合框架

Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得学IT行业好,才要求老师转专业的.可以结果没有多余的空位了,数组里的长度都是安排好的,没有空间了. 为了解决新同学的问题,老师们重新创建一个空间(重复创建一个新的数组),为了能够更好的解决问题,老师提供了可以不断扩大空间(Java提供了集合,当数据多了,个数不稳定时,可以用集合). 在Java中,数

JAVA中常见异常小结

1.java.lang.ArithmeticException 算术运算异常,例如除数为0,所以引发了算数异常 2.Java.lang.StringIndexOutOfBoundsException:  这是截取字符串substring()产生的下标越界异常.原因是可能是字符串为空,或长度不足1 3.Java.lang.NullPointerException空指针异常 出现该异常的原因在于某个引用为null,但却调用了它的某个方法,这时就会出现该异常 4.ClassCastException

Java基础笔记-异常

Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的处理方式是try catch finally.格式为: try { 需要被检测的异常. } catch(异常类 变量) { 处理异常的代码()处理方式 } finally { 一定会被执行的代码语句 } 一个简单的异常处理代码及有关函数的应用: 1 /* 2 异常:Exception. 3 处理异常

Java中的异常和处理详解

原文出处:代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰. Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手

跳出Java当中的一些循环,跳出双层FOR循环

今天写代码写了个双层的for循环,里面还是用来Iterator,大致意思就是在第二个循环中如果符合条件就给跳出整个双层循环. 刚开始,直接使用break.巴拉巴拉的敲了一堆代码,信心满满的就直接运行.等到结果一看,这不是要我要的.哎··看来不扎实呀! 突然来了兴趣,索性就看看一些资料,总结了几种跳出循环的方式: 1.直接跳出循环: for (int i = 0; i < 10; i ++) { if(i == 4) { break; } System.out.println(i); } Syst

Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 1 ActionContext context = ActionContext.getContext(); 2 ServletContext servletContext = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT); //抛空指针异常