欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java抛异常与直接返回比较  

程序员文章站 2022-06-12 21:35:04
...
使用异常能使代码清晰,那抛异常与返回状态码的性能差多少呢。
闲来无事,做个测试

先上测试代码
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次结果
直接返回 抛异常
10971157 10890656983
9833024 10809811373
12002224 10813899951
15228402 10740746030
65847475 10736142652
9674623 10735044607
8212356 11051365537
10112668 10746780876
9975290 10764845322
11647779 10846855466

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