文档章节

关于程序中抛出异常

IT-Mamba
 IT-Mamba
发布于 2017/06/09 10:25
字数 351
阅读 10
收藏 0

程序1:try catch捕获异常,不抛出

import java.util.Map;
import java.util.TreeMap;

public class testThrow {
	public static void main(String[] args) {
		TreeMap<String, String> map = new TreeMap();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "");

		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println("Key = " + entry.getKey() + ", Value = "
					+ entry.getValue());
		}

		MyThread r = new MyThread();
		r.start();

		try {
			String a = null;
			map.put(a, "value");
			System.out.println(a);
			System.out.println(map.get(a));
		} catch (NullPointerException e) {
			System.out.println("a is null");
		}

		for (int i = 0; i < 200; i++) {
			System.out.println("main here " + i);
		}

		System.out.println("test2test");

	}

	static class MyThread extends Thread {
		public void run() {
			for (int i = 0; i < 200; i++) {
				System.out.println("MyThread : " + i);
			}
		}
	}
}

运行结果:

1)遍历了map

2)执行捕获异常后的输出,打印了a is null

3)主线程和线程r交互执行,交互打印出结果

4)执行最后的输出:test2test

 

程序2:直接new 异常

import java.util.Map;
import java.util.TreeMap;

public class testThrow {
	public static void main(String[] args) {
		TreeMap<String, String> map = new TreeMap();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "");

		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println("Key = " + entry.getKey() + ", Value = "
					+ entry.getValue());
		}

		MyThread r = new MyThread();
		r.start();

		if ("".equals(map.get("k4"))) {
			throw new NullPointerException("k4 is null"); 
			//System.out.println("k4 is null");
		}


		for (int i = 0; i < 200; i++) {
			System.out.println("main here " + i);
		}

		System.out.println("test2test");

	}

	static class MyThread extends Thread {
		public void run() {
			for (int i = 0; i < 200; i++) {
				System.out.println("MyThread : " + i);
			}
		}
	}
}

运行结果:

1)遍历map

2)抛出异常

Exception in thread "main" java.lang.NullPointerException: k4 is null
    at com.test.testThrow.main(testThrow.java:23)

3)执行线程r,打印出MyThread : 0~199

 

得出结论:

抛出异常之后,程序后续的语句将不会继续执行,不过其他线程不受影响。

 

 

                                                                                               ------欢迎指出不足之处,谢谢

 

© 著作权归作者所有

IT-Mamba
粉丝 10
博文 132
码字总数 55322
作品 0
惠州
程序员
私信 提问
.NET----错误和异常处理机制

前言   错误的出现并不总是编写程序的人的原因,有时应用程序会因为应用程序的最终用户引发的动作或运行代码的环境发生错误。无论如何,我们都应预测应用程序中出现的错误,并相应的进行编...

小世界的野孩子
08/07
0
0
【Java入门提高篇】Day16 Java异常处理(上)

当当当当当当,各位看官,好久不见,甚是想念。 今天我们来聊聊Java里的一个小妖精,那就是异常。什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生...

MFrank
2018/05/09
0
0
C++ 异常处理

异常处理介绍 在程序运行过程中,报错这个东西是在异常出现后用于防止继续程序的动作。这些异常,包括用户的,逻辑的,系统的都可以使用一个函数来识别。如果识别的程序不能够处理异常,那么...

oschina
2013/01/10
753
1
Java异常

最近的写代码的过程中,遇到很多异常的处理,以前上大学的时候写代码,遇到异常直接给个try catch了事,只是停留在看懂异常能够找出异常抛出点的水平。真正写代码的时候,不了解java的异常机...

德彪
2017/11/25
0
0
C++中new引发的异常

我很不喜欢C++自带的库里的异常类,因为不能带调试信息,所以有些不得不使用其异常的地方抓住它抛出的异常然后抛出一个自己的, 例如抓住bad_alloc,然后抛一个自己的 MemoryException, 但是...

吃土的汉子
2012/04/20
5.3K
9

没有更多内容

加载失败,请刷新页面

加载更多

为构建社交关系链手淘都做了啥?

作者|王卫(泓冰) 出品|阿里巴巴新零售淘系技术部 01、淘宝社交关系推荐的背景 1、互联网下半场到来:互联网的下半场,人口红利消失,各大平台需要对用户做精细化运营,用户的增长和留存是每一...

阿里云官方博客
10分钟前
3
0
Iaas/Paas/Saas有何区别,一个故事告诉你

云计算有三种服务模式,IaaS,PaaS和SaaS。单从英文全称去理解,他们分别是“基础设施即服务”“平台即服务”和“软件即服务”。 这样翻译过来可不好理解,但是我们可以举个例子。现在我们就以...

JEPaaS云平台
17分钟前
3
0
温度传感器怎么测好坏

  温度传感器也就是负温度系数热敏电阻,温度越高,电阻越小,测量时先看其阻值能不能根据温度的变化而变,再看其变化的阻值是不是在标定的范围之内。   有以下四种方法;   1、若是有...

仙溪
18分钟前
3
0
zk中ZooKeeperServer解析

内部类 ChangeRecord 处理PrepRP和FinalRP之间的信息 static class ChangeRecord { ChangeRecord(long zxid, String path, StatPersisted stat, int childCount, List<ACL> acl) {......

writeademo
28分钟前
3
0
LNMP---安装worrdpress、discuz,域名重定向,用户认证,nginx访问日志

4.34 安装wordpress 4.35 安装discuz 4.36 域名重定向 4.37 用户认证 4.38 nginx访问日志 一、安装wordpress 创建博客: 添加一个博客的虚拟主机 blog.tobe.com.conf 做如下更改 安装博客wor...

tobej
30分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部