热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中的前5个异常示例

Java中的前5个异常示例原文:https://www.

Java 中的前 5 个异常示例

原文:https://www . geeksforgeeks . org/top-5-带示例的 java 异常/

运行时编译后干扰程序正常执行的意外事件称为异常。为了应对程序的这种突然执行,异常处理是程序的正常终止。

Top-5-Exceptions-in-Java

说明:考虑一个现实生活中的例子

假设运行时德里图书馆有图书需求,但由于某些运输问题,德里图书馆无法提供图书。然后德里图书馆建议从印多尔图书馆拿书继续我们剩下的工作。这种定义备选项的方式只不过是异常处理。

例外划分如下:


  1. 已检查异常:这些是程序执行时编译器可以检测到的异常,并显示警告信息。


  2. 未检查的异常:这些是编译器检查遗漏的异常,会产生突然流。不会显示警告消息,因为编译器不会检测到这些异常。


现在,上面两种类型的异常分类如下:


  1. 泛型编程异常:泛型编程异常是指程序员(或)应用编程接口开发人员明确提出的异常,称为编程异常。示例包括IllegalArgumentException(IAE)

  2. JVM 异常:异常是指每当特定事件发生时,由 JVM (Java 虚拟机)自动引发的异常。例如arrayindexoofboundxceptionNullPointException(NPE)。

最常发生的 5 个例外如下:


  1. 非法引数异常

  2. ArrayOutOfBoundException

  3. StackOverflowException

  4. NumberFormatException

  5. 空指针异常

1 .illegal arguments exception(iae)

抛出表示数组被非法索引访问。索引为负,或者大于或等于数组的大小。

示例:

Java 语言(一种计算机语言,尤用于创建网站)


// IllegalArgumentException in Java
// Class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a new thread
        Thread t = new Thread();
        // valid in thread
        t.setPriority(10);
        // invalid(IllegalArgumentException(IAE))
        t.setPriority(100);
    }
}

输出:

2 .array index outofboundsexception

ArrayIndexOutOfBoundsException 是一个只在运行时抛出的运行时异常。Java 编译器在编译程序时不会检查这个错误。

示例:

Java 语言(一种计算机语言,尤用于创建网站)


// ArrayIndexOutOfBoundsException in Java
// Importing all classes of
// java.util package
import java.util.*;
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Size of array is 10
        // Indexes ranging [00 - 09]
        int[] a = new int[10];
        // Case 1: Custom index within array size
        // Valid
        System.out.println(a[0]);
        // Case 2: Index greater than the size of the array
        // Invalid
        // ArrayIndexOutOfBoundsException
        System.out.println(a[100]);
        // ArrayIndexOutOfBoundsException
        System.out.println(a[-100]);
    }
}

输出:

3.StackOverFlowError

StackOverflowError 是 Java 不允许捕捉的错误,例如,堆栈空间不足,因为这是最常见的运行时错误之一。StackOverflowError 的主要原因是我们没有为我们的递归函数或模板提供合适的终止条件,这意味着它将变成一个无限循环。

示例:

Java 语言(一种计算机语言,尤用于创建网站)


// StackOverflowException in Java
// Importing all classes of 
// java.util package
import java.util.*;
// Class
public class GFG {
    // Method1()
    public static void methodOne()
    {
        // Defining Method2() in Method1()
        methodTwo();
    }
    // Method2()
    public static void methodTwo()
    {
        // Calling method1 in methos2()
        methodOne();
    }
    // Main driver method
    public static void main(String[] args)
    {
        // Calling method1() in main()
        methodOne();
    }
}

输出:

4 .NumberFormatException:

当强制字符串转换为数值但不支持输入字符串的格式时,将引发此异常。例如,将一个字符串解析为一个整数,其中在引发未检查异常的字符串中分配了空值。

示例:

Java 语言(一种计算机语言,尤用于创建网站)


// NumberFormatException in Java
// Importing input output java classes
import java.io.*;
// Class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // ParseInt() takes integer value as parameter
        // other values
        // valid
        int i = Integer.parseInt("50");
        // invalid
        // forInputString(A)
        // NumberFormatException will be thrown
        int j = Integer.parseInt("A");
        // invalid
        // forInputString(five)
        // NumberFormatException will be thrown
        int k = Integer.parseInt("five");
    }
}

输出:

5。空指针异常

Null 是 Java 中使用的特殊值。主要用于表示没有给引用变量赋值。这是一个运行时异常,其中可以为对象引用分配一个特殊的空值。当程序试图使用具有空值的对象引用时,会引发 NullPointerException。

示例:

Java 语言(一种计算机语言,尤用于创建网站)


// NullPointerException in Java
// Importing all classes of
// java.util package
import java.util.*;
// Class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Assigning null to string
        String str = null;
        // Calculating length of string
        // Forcefully printing length which throws
        // NullPointerException
        System.out.println(str.length());
    }
}

输出:

注::还有两个例外确实经常发生


  1. noclassedeffind对应类的定义缺失

  2. ClassCastException 是一个运行时异常,其中一个类被不正确地从一种类型转换为另一种类型。



推荐阅读
  • 本文详细介绍了Java中的注解功能,包括如何定义注解类型、设置注解的应用范围及生命周期,并通过具体示例展示了如何利用反射机制访问注解信息。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
author-avatar
Li-zHihuAn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有