做了一个几个星期的东西,又要重新再来了~~从需求分析重新做起,这时,我终于体会到了沟通的重要性啊~~
今天,现在都凌晨1点了,应该是昨天,昨天下午进行了一场笔试,选的Java,选择题加问答题~~感觉Java 全都是一些基础的根本的知识,只要基础扎实,笔试是不成问题的~~~·但是,姐的基础不扎实~~~~~~13个选择题,有6个判断程序结果的题,姐都不是很把握,但是,姐都答对了~直觉指引我啊~~~~~~姐决心好好学习!!!!一定要踏踏实实!!Yes!
今天总结一下 Java的异常处理机制~~早该做的~~~~
一:Java 异常的类型
Java 常见异常类的结构如下:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.Error
java.lang.ThreadDeath
Throwable 是Java语言中所有异常和错误的超类,只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。Throwable 有两个直接子类,Error和Exception。
1,Error:API文档说:“Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。” 意思应该是:Error表示 程序本身无法恢复的严重错误,如,内存越界,正常程序不应该试图捕获的严重错误,应该交给系统处理。应该谨慎使用Error的子类,因为它可能导致灾难性的错误。
2,Exception :API文档说:“Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。 ” 意思应该是:程序本身可以处理的异常。Exception 有一个子类:Runtime Exception。
3,Runtime Exception: API文档说:”RuntimeException
是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。“ Runtime Exception 顾名思义:运行时异常。Java编译器也就是java虚拟机不会去检查它,即使程序可能出现这种异常,不去Try catch ,也不throws 在代码编译阶段,还是会通过,但是在代码运行阶段会出现错误反应。一些常见的异常错误,如NullPointException就是Runtime Exception 的直接子类。
二:Java 的异常处理
Java的“ 异 常” 处 理 通 过5个 关 键 词 来 实现:try,catch,throw,throws和finally。
1,使用try ..catch
我们希望自己可以处理异常,可以用try {}来指定一块可能出现异常的代码块。catch()来制定想要捕捉的异常类型。注意,try ,catch 均不可单独使用。可以组合使用。try 必须至少有一个与其匹配的 catch或finally。
如果,同一段程序可能出现多个异常类型,则可以有多个catch语句,每一个catch 的异常类型都会被检查,第一个与异常匹配的catch语句就会被执行,其他的catch语句就不会再被执行。因此,如果,一个类和子类同时都catch的话,应将子类的catch放在前面,否则,永远不会到达子类。
2,throw
throw 用来明确的抛出一个异常,在方法体内。语法格式为 throw 异常对象。throw 后,传到catch语句。 throw 后面的语句将永不会被执行。
3,throws
throws 用来表明一个方法可能抛出的各种异常,在方法名后。语法格式为 throws 异常类型1,异常类型2 ····
对于处理不了的异常或者需要转型的异常一般会throws。如果,在方法调用方法的多层嵌套中,每个方法都throws,java虚拟机会从出现异常的代码块中,一层一层的往外找,直到找到处理该异常的代码为止,然后将异常交给处理的catch语句。如果,Java虚拟机找到最外层的main()方法时,仍然没有异常处理的代码,将会,第一、调用异常的对象的printStackTrace()方法,打印方法调用栈的异常信息。第二、如果出现异常的线程为主线程,则整个程序运行终止;如果非主线程,则终止该线程,其他线程继续运行。
4,finally
如果一个异常被抛出时,程序的执行不再是线性的,可能会导致有些代码无法执行到。为了保证有些代码无论抛出什么异常都必须被执行的话,这一段代码可以用finally来标识。finally语句总是在return语句前执行,不论位置的先后。
总的来说,异常越早处理越好,占用的资源的时间就会越小,如果自己可以处理的异常就可以处理掉,不要抛给调用者。
分享到:
相关推荐
Java 异常机制小结 Java 异常机制是 Java 语言中一个非常重要的方面,也是程序设计的一大难点。Java 语言在设计的当初就考虑到异常处理的框架的方案,使得所有的异常都可以用一个类型来表示,不同类型的异常对应...
本文主要总结了Java异常处理机制及其相关知识点。 首先,异常机制是Java中用于处理程序运行时错误的框架。当程序执行过程中遇到问题,异常机制会提供一个安全的出口,使得程序控制权能够转移到预先定义的异常处理器...
Java 异常处理操作实例小结 Java 异常处理是 Java 编程语言中的一种错误处理机制,用于捕获和处理运行时的异常情况。本文将通过实例形式总结分析 Java 异常处理操作的常见情况与相关处理技巧。 一、异常处理的使用...
【Java异常处理-自定义异常类及课后练习】 在Java编程中,异常处理是程序健壮性的重要组成部分。Java提供了丰富的预定义异常类,但有时这些预定义的异常类并不能满足特定业务需求,这时就需要自定义异常类。自定义...
通过以上介绍,我们可以了解到Java异常处理机制的强大之处。正确地使用异常处理不仅可以提高程序的健壮性,还可以让程序更加易于维护和扩展。在实际开发中,合理地使用异常处理机制对于构建高质量的软件系统至关重要...
Java异常处理是编程中至关重要的一个环节,它用于处理运行时出现的问题,确保程序的健壮性和稳定性。本文将深入探讨Java的异常处理机制,包括内置异常、异常处理的核心方法、异常捕获以及自定义异常。 首先,Java...
1.异常的概念2.异常的分类3.捕获并处理异常(try……catch/finally)try……catch块 try……多catch块 try……catch/finally块 4.抛出异常throws5.自定义异常 自定义异常的来由 操作步骤 ...小结 throw与throws的区别
这些接口需要继承`java.rmi.Remote`接口,并声明可能抛出`RemoteException`的异常。例如,上述示例中的`LoadFile`接口。 ```java public interface LoadFile extends Remote { void upLoadFile(FileInformation ...
Java异常处理机制是Java语言中一项重要的特性,它能够帮助开发者更好地管理程序中的错误情况,确保程序在遇到问题时能够优雅地处理而不是突然崩溃。Java中的异常主要分为两大类:**检查型异常(Checked Exception)*...
在Java编程中,输入语句是程序与用户交互的关键部分,允许用户向程序提供数据。以下是对Java输入语句的详细总结,主要介绍两种常用的方法:`Scanner`类和`...在处理用户输入时,一定要注意异常处理,确保程序的健壮性。
《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...
Java异常处理是编程中至关重要的一个部分,它用于处理程序运行时可能出现的错误或异常情况。在Java中,异常处理采用了一种面向对象的方式,通过创建特定的异常类来表示不同类型的错误,使得代码更加清晰、可维护。...
Java Socket通信小结 在Java编程中,Socket通信是一种基于TCP/IP协议的网络通信方式,它允许两个应用程序之间建立可靠的、双向的数据传输连接。本文将深入探讨Java Socket通信的基础知识,以及如何通过Java实现一个...
这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心编写的教学精华,旨在帮助学生巩固所学知识并为后续学习打下坚实基础。 在Java课程中,有几个核心概念和技术是必...
#### 小结 通过本示例,我们学习了如何在 Java 中创建和使用自定义异常类。自定义异常类不仅可以使代码更加清晰易读,还可以帮助开发者更精确地控制异常处理流程,提高程序的健壮性和可维护性。在实际开发中,合理...
### Java笔试题小结 #### 1. Java 字符串(String) **问题**: String 类的特点是什么?与 StringBuffer 的区别? **分析与解答**: `String` 类在 Java 中是不可变的,即一旦创建了一个字符串对象,其内容就不能...
Java基础知识是每个Java开发者必须掌握的核心内容,涵盖了...以上只是Java基础知识的一部分,学习Java还需要掌握异常处理、IO流、多线程、网络编程、反射、设计模式等众多内容,不断深入理解才能成为熟练的Java开发者。