`
jh108020
  • 浏览: 110913 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

java抛异常与直接返回比较

 
阅读更多
使用异常能使代码清晰,那抛异常与返回状态码的性能差多少呢。
闲来无事,做个测试

先上测试代码
1抛异常的
	static void f2() {
		throw new RuntimeException("1");
	}

	public static void main(String[] args) {
		long a = System.nanoTime();
		for (int i = 0; i < 10000000; i++) {
			try {
				f2();
			} catch (Exception e) {
				String s=e.getMessage();
			}
		}
		long b = System.nanoTime();
		System.out.println(b-a);
	}


2直接返回的
	static String f1() {
		return "1";
	}

	public static void main(String[] args) {
		long a = System.nanoTime();
		for (int i = 0; i < 10000000; i++) {
			String s=f1();
		}
		long b = System.nanoTime();
		System.out.println(b-a);
	}


分别执行10次结果
直接返回抛异常
1097115710890656983
983302410809811373
1200222410813899951
1522840210740746030
6584747510736142652
967462310735044607
821235611051365537
1011266810746780876
997529010764845322
1164777910846855466

分别去掉最大最小耗时求和得出
直接返回抛异常抛异常/直接返回
8944516786349738653965.3930061



分享到:
评论

相关推荐

    java开发异常处理与日志规范

    8. **异常匹配原则**:捕获的异常应与抛出的异常完全匹配或为抛出异常的父类。否则,可能会导致意外的处理逻辑。 9. **返回值可能为null的注释**:允许方法返回null,但需在注释中明确指出可能返回null的情况,提醒...

    java 异常框架CODE

    运行时异常则通常与编程错误有关,如空指针异常或算术溢出,它们可以在程序运行时抛出,无需显式捕获。 **异常的层次结构** Java异常都继承自`java.lang.Throwable`类,其下有两个主要子类:`Exception`和`Error`。...

    抛出异常的事例

    这个异常没有指定类型,而是直接使用了`Exception`,这是所有异常的基类。如果数组包含至少一个字符串,方法会进行字符串反转操作。 这两个例子都展示了Java异常处理的基本结构,即`try-catch-finally`块,以及...

    JAVA 异常处理的学习

    1. 抛出异常:当一个异常发生时,Java会创建一个异常对象并“抛出”它。这可以通过使用`throw`关键字来实现。例如,`throw new IllegalArgumentException("参数错误");` 2. 捕获异常:为了处理抛出的异常,我们可以...

    高效java异常处理机制

    一个好的编程实践是通过抛出异常来报告错误,而不是返回特殊的错误代码。异常提供了更清晰的语义,使得代码更易于理解和维护。 3. **避免过多的try-catch块** 过多的try-catch块会使代码变得复杂且难以阅读。尽量...

    JAVA中常见的异常

    - 使用`Optional`类来避免直接返回`null`。 - 对于可能为`null`的对象引用,采用断言进行验证。 #### 二、`java.lang.ClassNotFoundException` 当Java运行时环境无法找到指定类的字节码文件时,就会抛出`java.lang...

    java课件 常用类与异常处理

    Java中的常用类与异常处理是Java编程中至关重要的部分,这些概念构成了Java应用程序的基础和健壮性。在Java中,`Object`类是所有类的父类,它提供了几个核心的方法,包括`equals()`, `hashCode()`, 和 `toString()`...

    java throws声明异常实例二

    `throws`关键字是Java中用于处理异常的一种方式,它被用来声明方法可能会抛出的异常。在这个“java throws声明异常实例二”中,我们将深入探讨`throws`关键字的使用以及它在实际编程中的应用。 首先,`throws`...

    深入理解java异常处理机制

    1. **`testEx2`** 方法中的 `finally` 块被执行后,返回了一个布尔值 `false`,这导致了 `testEx1` 方法中的 `finally` 块也输出了 `false` 的返回值,而不是在 `catch` 块中抛出异常。 2. **`testEx1`** 方法中的 ...

    Java中常见异常类型及分析.pdf

    Java语言中提供了丰富的异常处理机制,包括异常的抛出、捕获和处理。本文将详细介绍几种Java中常见的异常类型及其产生原因,并提供相应的解决方案。 #### 二、异常类型详解 ##### 1. NullPointerException (空指针...

    Java语言程序设计:第五章 异常.ppt

    Java语言程序设计之异常处理 异常是Java语言程序设计中不可或缺的一部分,它们在程序执行过程中可能会出现的错误或异常情况。下面是Java语言程序设计之异常处理的要点: 一、为什么需要异常? 在Java程序执行过程...

    Native异常的处理

    5. **返回错误码**:由于Java无法直接捕获C++异常,一种常见的做法是在本地方法中返回一个错误码。Java代码可以检查这个错误码,然后根据需要抛出对应的Java异常。 6. **JNI的异常检查**:每次调用JNI函数后,都应...

    java后端返回结果实体类,搭配java后端返回结果工具类使用

    当服务端遇到错误时,可以直接抛出自定义异常,由ResultUtil捕获并转化为统一的Result对象返回。 3. **UpdateDataSourseException**: 这可能是一个自定义的异常类,用于特定的数据源更新操作中的错误情况。它可能...

    android jni抛出异常

    当我们尝试在JNI代码中抛出一个异常时,实际上是在JNI层创建了一个本地异常,这个异常会在下一次JNI方法返回到Java层时被抛出。 在标题“android jni抛出异常”中,我们关注的是如何在JNI层生成并传递异常到Java层...

    java中常见的NullPointerException异常.pdf

    因为request.getParameter("username")可能返回null值,如果我们直接使用这个值,而不检查它是否为空,就可能抛出异常。 解决方案:在使用对象之前,先检查对象是否为空。如果对象为空,就赋予它一个默认值或为空...

    深入java异常学习指南

    本文将深入探讨Java异常处理机制的核心知识点,包括异常的基础概念、异常处理的关键字、异常的流程与结果分析,以及如何正确抛出和处理异常。 ### 关于Java异常处理机制的深入理解 Java异常处理主要围绕`try`、`...

    jni方法里面抛出异常

    - 本地方法抛出异常后,Java方法栈上的所有finally块都不会执行,这是与Java异常处理的一个关键区别。 综上所述,理解和掌握JNI中的异常处理是Android开发中的重要技能,它能帮助开发者在混合编程时更好地处理错误...

    Java中的异常处理机制.pdf

    如果try块抛出的异常与catch块的异常类型匹配,那么相应的catch块的代码将被执行。 3. **finally关键字**:无论try和catch块的结果如何,finally块中的代码总会被执行。它常用于释放资源,如关闭文件、数据库连接或...

    JAVA基础--如何通过异常处理错误

    当异常被抛出时,异常处理机制将负责搜寻参数与异常类型相匹配的第一个处理程序。然后进入catch子句执行,此时认为异常得到了处理。 3. 栈轨迹 printStackTrace()方法所提供的信息可以通过getStackTrace()方法来...

    java 索引越界异常(IndexOutOfBoundsException)

    - **使用方法提供保护**:如果编写的方法可能抛出此异常,可以考虑在方法内部处理异常并返回特定值或抛出自定义异常,以提高代码的可读性和健壮性。 了解和正确处理`IndexOutOfBoundsException`对于任何Java开发者...

Global site tag (gtag.js) - Google Analytics