`
尘大大
  • 浏览: 10889 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

异常机制总结

 
阅读更多
异常机制可分为 运行时异常和强制异常,在编写代码的过程中,我们最容易遇见的异常

有空指针异常、数组越界、类型转换异常。空指针异常在某个对象未被实例化,而又用

该对象名调用方法时发生。如:
public class Test extends JFrame{
private void testify(){
System.out.println("这是一个Test类");
}

/**
* @param args
*/
public static void main(String[] args) {
Test test=null;
test.testify();
}

}


以上代码中test并未创建,在执行时便会跑出异常:
Exception in thread "main" java.lang.NullPointerException
at example07.Test.main(Test.java:15)

当遇到这种异常时,较快的一种找到错误的方法是点击NullPointerException后的第一行

中的类与代码行Test.java:15,会直接链接到出现错误的那一行,然后在出错行用

System.out.println()方法输出可能是空的对象名,如:
                System.out.println(test);
如果test为空,则会打印出 null,如果某一对象名涉及多层参数的传递,仍然可以用输

出的方法一层一层的检验,直到找到出错的位置。
数组越界异常的处理可以用与处理空指针异常时相同的方法找出出错行,数组越界极为

数组下表越界,如果数组下表为一个变量时,我们同样可以用输出的方法判断数组越界

的位置。
类型准换包括子类向父类的自动转型和父类向子类的强制转型,以下转换都是可行的:
public class Test extends JFrame{
private void testify(){
System.out.println("这是一个Test类");
Object obj =new Test();
JFrame frame=(JFrame)obj;
}
                       ....
Object类是所有的类的父类,我们在编写某一个没有继承任何类的类时,这个类仍然继

承了Object类,以上代码中由于Object是JFrame的父类,而Test又是JFrame的子类,

故Object obj =new Test()是自动转型,而JFrame frame=(JFrame)obj是强制转型。
类型转换异常发生在没有继承关系的两个类强制转型时,如:
public class Test extends JFrame{
private void testify(){
System.out.println("这是一个Test类");
Object obj =new Test();
JPanel  frame=(JPanel)obj;
}
    .....
执行此段代码时系统会报错:
Exception in thread "main" java.lang.ClassCastException: example07.Test cannot be

cast to javax.swing.JPanel
at example07.Test.testify(Test.java:10)
at example07.Test.main(Test.java:19)
执行时异常RuntimeException是Exception(所有异常的父类)的子类,以上三个异常都是

RuntimeException的子类,在我们遇到其他的异常时可以首先 在API文档中找到这个异

常的解释,从而更快的找到错误。
强制异常发生在某个方法定义中抛出异常(thow new Exception())时,如:
private void testify() throws Exception{
System.out.println("这是一个Test类");
Object obj =new Test();
JPanel  frame=(JPanel)obj;
throw new Exception();
}
在调用这个方法时必须用try...catch语句处理错误或继续向上抛出异常:
public static void main(String[] args) throws Exception {
Test test=new Test();
System.out.println(test);
test.testify();
...
以上代码中main方法也抛出异常,此时将异常抛给JVM处理。
分享到:
评论

相关推荐

    java异常机制总结

    Java异常处理机制是Java编程中不可或缺的一部分,它用于处理运行时出现的错误和不正常情况。异常处理通过五个关键字来实现:`try`、`catch`、`finally`、`throw`和`throws`。在这里,我们将重点讨论`throw`、`throws...

    异常处理机制知识点小总结

    下面是对Java异常处理机制的详细解析。 在Java中,异常是程序运行时发生的错误,它中断了正常的代码流程。异常类继承自`java.lang.Throwable`,分为两种类型:Error和Exception。Error是系统级别的问题,如虚拟机...

    C++异常处理总结

    5. 异常处理机制不仅仅适合于处理“灾难性的”事件,普通的错误处理也可以用异常机制来处理。但是,如果将其滥用的话,可能造成程序结构混乱。 6. 异常处理机制可以使程序更脆弱,然而这也是使程序更坚强的第一步。...

    Java异常机制

    对面试过程中Java异常机制总结、包括异常的分类、运行机制和实例分析等

    Java异常处理总结

    ### Java异常处理总结 #### 一、Java异常的基础知识 在Java编程中,异常处理是一项极其重要的技术。异常处理能够帮助开发者优雅地处理程序运行时遇到的问题,避免程序崩溃,并提供给用户友好的反馈信息。 **什么...

    异常机制的总结与处理

    程序员应当尽量避免异常的发生,同时在异常发生时提供处理机制,确保程序不会因此中断或产生不可预期的结果。 在Java中,异常是由方法内部产生的,当一个方法出现异常时,Java虚拟机(JVM)会创建一个代表该异常的`...

    java异常总结

    ### Java异常总结 #### 一、Java异常概述 在Java编程语言中,异常处理机制是一项非常重要的特性。它提供了一种方法来响应错误条件,并且能够有效地管理程序运行时可能出现的各种异常情况。Java中的异常主要分为两...

    J2SE中流 ,异常 的个人总结

    异常是程序运行时遇到的错误,Java通过异常处理机制来优雅地处理这些错误,避免程序崩溃。异常处理通过try-catch-finally结构实现: 1. try块:包含可能抛出异常的代码。 2. catch块:捕获并处理try块中抛出的异常...

    c++异常处理 总结

    ### C++异常处理总结 #### 一、引言 异常处理是C++语言中的一个重要特性,它能够有效地增强程序的健壮性和可维护性。在实际编程中,正确地运用异常处理机制对于处理不可预知的错误至关重要。本文将从以下几个方面...

    软件工程中的错误处理与异常机制.pptx

    ### 软件工程中的错误处理与异常机制 #### 第一章:软件工程中的错误处理与异常机制 在软件工程领域,确保软件系统的稳定性和可靠性是至关重要的任务之一。为了达到这一目标,软件开发者需要掌握并正确应用错误...

    socket通信异常解决总结

    Socket 通信异常解决总结 Socket 通信异常是指在网络通信过程中出现的各种错误和异常,包括网络连接断开、服务器端或客户端程序异常、网络链路异常等。这些异常会导致 Socket 连接断开,影响系统的稳定性和可靠性。...

    C++异常机制的实现方式和开销分析

    ### C++异常机制的实现方式和开销分析 #### 一、引言 在现代软件开发中,异常处理是确保程序健壮性和可维护性的重要手段之一。C++作为一种广泛使用的编程语言,提供了丰富的异常处理机制。对于每一位C++开发者而言...

    Java异常机制.txt

    ### Java异常机制详解 #### 一、Java异常机制概述 Java异常处理机制是Java语言的一个重要组成部分,用于处理程序在运行过程中可能出现的各种错误情况。它能够帮助开发者更好地控制程序流,确保程序即使遇到异常也...

    JAVA的异常处理机制

    ### JAVA的异常处理机制 #### 引言 Java作为一种广泛使用的编程语言,其强大的功能不仅体现在高效的代码编写上,还在于其对程序错误处理的高度灵活性与健壮性。Java的异常处理机制是Java语言的一项重要特性,它...

    V6-001_移植SEGGER的硬件异常分析机制.rar

    总结来说,移植SEGGER的硬件异常分析机制到STM32-V6开发板是一项综合性的任务,它涉及到STM32的中断和异常处理、SEGGER工具的使用、RTOS的兼容性等多个方面。通过这项工作,开发者不仅可以提升系统的调试能力,还能...

    java异常处理机制示例(java抛出异常、捕获、断言)

    总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...

    java异常学习总结

    ### Java异常学习总结 #### 一、Java异常概述与分类 在Java开发中,异常处理是确保程序稳定性和健壮性的关键部分。本篇总结了Java异常的基本概念、分类及处理方式等内容,对于从事Java开发的技术人员具有重要的...

    JAVA基础第6章异常处理机制_练习题_200910[借鉴].pdf

    JAVA基础第6章异常处理机制练习题 本资源是关于JAVA基础第6章异常处理机制的练习题,涵盖了异常处理机制的基本概念、try-catch-finally语句、throw和throws关键字、自定义异常类等知识点。 1. 异常处理机制的基本...

    Linux内核中的异常处理机制分析

    ### Linux内核中的异常处理机制分析 #### 引言 在深入探讨Linux内核的异常处理机制之前,我们首先简要回顾一下Windows下的结构化异常处理(Structured Exception Handling,简称SEH)。SEH是Windows系统中用于处理...

Global site tag (gtag.js) - Google Analytics