讲述:
1.五个关键字
1.try:尝试捕获异常,具体的下面讲述
2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常。
3.throw:主动的抛出一个异常
情况一:我发现了一个我处理不了的 并且会导致我程序不正常运行的错误,于是我将这个异常抛出去了。(抛给谁了?这个视情况而定)
情况二:我发现了一个不太对的地方会影响我今后的程序运行,为了避免更大的错误产生,我先主动的提出(抛出)这个“问题”
4.throws:方法声明 会抛出这样的异常,用于自定义异常。(初学者 可以暂时绕过)
5.finally:
无论是否发生异常,程序必须执行的代码块。例如:经典的关闭数据库连接例子。多用于执行清理工作。
finally看似很“权威”(必须执行),但是System.exit(1);会让它丧失这个权威性。
2.try+catch
1.联合出击保证程序正常运行。
2.理解:
我们希望写出这样的程序:if(程序正常){我的操作} else{处理不正常}
但是这个程序正常太泛泛了 我们没办法定义它或者枚举它,于是我们用try去监视我们的操作是否正常,
当他不正常的时候,我们抓住这个不正常的情况 处理它。
try-catch 就是在做这么一件有意义的事。
3.注意(新手看不懂可以先绕过):
1.catch可以有多个,谁能抓住谁抓,抓不住就让别人去抓,但是这个是需要层级的(范围小的先catch)
2.try块中的变量只能在try中使用。
3.java7中提供了一次catch多个异常的方式,每个异常使用|分割(注意只有在jdk7下才能使用)
4.java7下的AutoCloseable接口可以使得程序简化有兴趣可自己百度或者查看java api
4.Exception的几个方法(见例子)
5.自定义一个异常:
1.上文说过不肯能枚举所有的异常情况,即便枚举了,但是你也不能冲破认知差异性。(在大象的世界里人类就是异类)
2.定义一个拥有自己业务逻辑的异常类
3.实现方式:继承Exception 或者他的子类
package com.cxy.exception; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.List; /** * @author peter */ public class ExceptionTest { public static void main(String[] args) { try { List l=null; l.get(0); }catch(NullPointerException|ArrayIndexOutOfBoundsException e) //注意:这里只能java7用,如果你不是java7请去掉一个异常 { System.out.println("我抓住了一个异常"); System.out.println("异常信息:"+e.getMessage()); e.printStackTrace(); //打印异常的跟踪栈信息 } System.out.println("======================="); /* throw * 用途: * 1.抛出一个我处理不了的异常 * 2.提前发现问题避免更大的问题发生(实践中得来) * 一个人要盖别墅,后经发现他选址在太平洋中间,于是我抛出了这个问题,避免后面砂石料,工程设计都做好了 发现根本没法建。 * 效果:导致程序或者方法终止(如果不catch这个异常的话) * */ try { throw new Exception("没事抛着玩"); //主动抛出一个异常 } catch (Exception e) { e.printStackTrace(); } System.out.println("======================="); //throws的用法 try { test(); } catch (NullPointerException e) { System.out.println("catch住了test方法抛出的异常"); } System.out.println("======================="); //finally用法 FileInputStream fis=null; //这是一个输入流 相关的知识请见后续文章 try { /* 这里会出现找不到cxy.txt这个文件错误 * 这里有个问题 无论异常产生与否 我们都需要将fis关闭 * java7之前 我们都是使用finally来处理这类的问题,无论是否发生异常都要执行的操作 * java7开始,AutoCloseable接口可以不必使用finally来处理这个问题(如果有时间我会写一篇相关的文章) */ fis = new FileInputStream("cxy.txt"); } catch (FileNotFoundException e1) { e1.printStackTrace(); }finally { try { fis.close(); } catch (Exception e) { //呵呵 包括这里都套着一个try,因为 程序怕遇到fis是null 或者 io异常 e.printStackTrace(); } } System.out.println("======================="); //自定义异常类 try { throw new MyException("中文异常信息"); } catch (MyException e) { e.printChineseMsg(); } System.out.println("虽然有很多异常,但是我正常完结了~"); } /** 提前声明 我这个方法可能会抛出什么样的异常,请调用者自己处理 */ public static void test() throws NullPointerException { throw new NullPointerException(); //抛出一个null异常 } } //自己定义的异常 class MyException extends Exception { public MyException(){} public MyException(String msg) { super(msg); //当然 这里你可以加一些日志的操作 } /** * 我们期望的能看懂的中文异常信息 */ public void printChineseMsg() { System.out.println("异常信息:"+this.getMessage()); } }
相关推荐
Java 异常处理操作示例 ...Java 异常处理操作示例主要介绍了 Java 基础之异常处理操作,涉及 Java 异常捕获、抛出异常、自定义异常处理相关操作技巧,帮助开发者更好地理解和使用 Java 异常处理机制。
零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理零基础学Java异常处理...
java基础异常学习ppt 学完本次课程后,你能够 了解异常概念 理解Java异常处理机制 会捕捉异常 会抛出异常 了解Java异常体系结构
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
JAVA基础-异常处理总结
Java中的异常处理是编程中非常重要的一个环节,它主要用于处理程序运行时可能出现的错误和问题。异常处理使得程序更加健壮,能够优雅地处理错误,而不是简单地崩溃。本章内容将围绕Java异常处理机制展开,包括理解...
下面将深入探讨在Java基础测试中常见的异常问题及其解决方案,尤其关注那些在执行基本Java程序时可能遇到的异常情况。 ### 1. "java' is not recognized as an internal or external command 这种情况通常发生在...
Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...
Java 异常机制的基础知识包括异常的基础概念、异常的分类、异常的对象、异常的来源、异常的处理等几个方面。 一、Java 异常的基础知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以...
Java基础学习课件PPT是一套全面覆盖Java SE(标准版)基础知识的教育资源,适合初学者和希望巩固Java技能的开发者。这套课件旨在在一个月内帮助学习者掌握Java编程的核心概念,为深入学习和应用Java技术打下坚实的...
Java 异常处理机制详解 Java 异常处理是指在 Java 程序执行过程中出现非预期的情况,例如数组下标越界、空...通过学习 Java 异常处理机制,可以更好地掌握 Java 编程的基础知识,并在实际开发中更好地处理异常情况。
Java异常处理是编程中至关重要的一个环节,它...通过实际操作,你将能够更有效地调试代码,定位问题,为后续的Java学习打下坚实的基础。在实际项目中,良好的异常处理和日志记录习惯将极大地提高开发效率和软件质量。
完整版 Java基础入门教程 Java程序语言设计 06 异常处理 异常和垃圾收集(共27页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络编程 JDBC(共21页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 ...
首先,我们来看看基础的`Exception`类,它是所有Java异常的根类。任何抛出的异常都直接或间接地继承自`Exception`。在处理时间异常时,最常见的可能是`IllegalArgumentException`,这个异常会在方法接收到非法参数时...
尚硅谷_佟刚_Java基础_异常处理.pdf): - 异常的分类:理解检查异常和运行时异常。 - try-catch-finally结构:学习如何捕获和处理异常。 - 自定义异常:了解如何创建和抛出自定义异常。 6. **IO流**(10. ...
当try块中的代码抛出一个异常时,控制权会立即转移到与之匹配的catch块。 2. **catch** 关键字:用于捕获try块中抛出的异常。你可以有多个catch块来捕获不同类型的异常。在本例中,`TryCatchTest.run(10, -1)`可能...