`

JAVA范例 四)异常处理(2)

阅读更多

实例46 trycatch捕获异常的实例

public class CatchException_01 {
	public static void main(String[] args) {
		int array[] = { 0, 1, 2, 3, 4, 5, 6 };
		try {
			for (int i = 0; i < 10; i++) {
				System.out.println("array[" + i + "]=" + array[i]);
			}
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("array[]的长度是" + array.length + ",数组下标越界了");
		}
		System.out.println("运行完毕");
	}
}

实例47  try-catch-finally捕获异常的实例

public class CatchException_02 {
	public static void hasException() {
		Object obj[] = new String[4];
		for (int i = 0; i < obj.length; i++) {
			try {
				if (i % 2 == 1)
					obj[i] = new Integer(i);// 此句会发生ArrayStoreException异常
				else
					obj[i] = new Integer(i) + "";
				System.out.print(" " + obj[i] + "\n");
			} catch (ArrayStoreException e) {
				System.out.println("出现ArrayStoreException异常,数组内的元素类型与数组类型不匹配");
			} finally {
				System.out.println("这是finally块,是程序必须执行的部分\n");
			}
		}
		System.out.println("方法执行结束");
	}
	public static void main(String argv[]) {
		hasException();
		System.out.println("程序正常结束");
	}
}

 

实例48  trycatch嵌套捕获异常的实例

package Chapter04.process;
public class CatchException_03 {
	public static void main(String[] args) {
		int array[] = new int[5];
		int n = 0;
		for (int i = 0; i < array.length; i++) {
			array[i] = i;
		}
		for (int i = 0; i < 10; i++) {			// 该循环中可能会出现数组索引越界异常
			try {
				try {
					n = array[i] / (i - 1);	// 这里可能会出现除0异常
				} catch (ArithmeticException e) {
					System.out.println("0不能做被除数");
				}
				System.out.println(n);
			} catch (IndexOutOfBoundsException e) {
				System.out.println("数组索引越界");
			}
		}
	}
}

 

实例49  throws声明异常的实例一

package Chapter04.process;
public class ThrowsException_01 {
	public static void main(String args[]) {
		try { // 由于ShowException会抛出异常,所以编译器会强制程序员在此捕获异常
			ShowException();
		} catch (Exception e) {
			System.out.println("这是只在ShowException中声明\n" + "并在main方法中捕获的异常:\n"
					+ e);
		}
	}
	public static void ShowException() throws Exception {// 在这里声明要抛出的异常
		Object x = new Integer(0);
		System.out.println((String) x);
	}
}

 

实例50  throws声明异常的实例二

package Chapter04.process;
public class ThrowsException_02 {			// 声明异常
	public void catchThowException(int str)
			throws ArrayIndexOutOfBoundsException, ArithmeticException,
			NullPointerException { 		// 声明catchThows方法的同时指出要可以出现的异常类型
		System.out.print(str + " ");
		if (str == 1) {
			int a = 0;
			int b = 6 / a;
		} else if (str == 2) {
			String s[] = new String[5];
			s[0].toCharArray();
		} else if (str == 3) {
			int[] a = new int[5];
			a[10] = 10;
		} else {
			System.out.println("没有发现异常,系统正常执行");
		}
	}
	public static void main(String args[]) {
		ThrowsException_02 te02 = new ThrowsException_02();
		try {
			te02.catchThowException(0);
		} catch (Exception e) {
			System.out.println("异常:" + e.getMessage()); 	// 捕获Exception异常,并打印出相应的异常信息
		}
		try {
			te02.catchThowException(1);
		} catch (Exception e) {
			System.out.println("异常:" + e); 			// 捕获Exception异常,并打印出相应的异常信息
		}
		try {
			te02.catchThowException(2);
		} catch (Exception e) {
			System.out.println("异常:" + e);				 // 捕获Exception异常,并打印出相应的异常信息
		}
		try {
			te02.catchThowException(3);
		} catch (Exception e) {
			System.out.println("异常:" + e); 			// 捕获Exception异常,并打印出相应的异常信息
		}
	}
}

 

实例51  throw抛出异常实例一

package Chapter04.process;
public class ThrowException_01 {
	public static void main(String argv[]) {
		try {
			// 由于ThrowException声明会抛出异常,所以编译器会强制程序员在此捕获异常
			ThrowException();
		} catch (Exception e) {
			System.out
					.println("这是由ThrowException方法抛出\n" + "在main方法中捕获的异常:" + e);
		}
	}
	public static void ThrowException() {// 这里还是可以声明要抛出异常
		double a = Math.random();
		if (a < 0.5)
			System.out.println(a);
		else
			throw new NumberFormatException();
	}
}

 

实例52  throw抛出异常实例二

package Chapter04.process;

import java.util.Scanner;

public class ThrowException_02 {
	public static void main(String[] args) {
		showValue();
	}
	public static void showValue() {
		System.out.println("请输入:");
		Scanner sc = new Scanner(System.in);				// 创建Scanner对象
		String str = sc.next();								// 获取由键盘输入的内容
		if (str.equals("close")) {							// 判断是否输入内容等于close
			sc.close();									// 如果是则关闭Scanner
			throw new UnsupportedOperationException();		// 抛出UnsupportedOperationException
		} else {
			System.out.println("由键盘输入的内容为:" + str);
		}
	}
}

 

实例53 自定义异常一

package Chapter04.process;
public class CustomException_01 {
	public static void main(String[] args) {// 捕获userException
		try {
			throw new userException(
					"This is the definition of my own exception classes");
		} catch (userException e) {// 打印userException异常信息
			System.out.println("异常信息是:\n" + e.toString());
		}
	}
}
// 创建一个异常类
class userException extends Exception {
	public userException(String message) {// 根据指定的异常信息自定义userException
		super(message);
	}
}

 

实例54 自定义异常二

package Chapter04.process;
public class CustomException_02 {
	public static void main(String[] args) {
		try {
			customException();
			formatThrowable();
		} catch (CustomException e1) { 	// 捕获CustomException异常
			System.out.println("Exception: " + e1.getMessage());
			e1.printStackTrace(); 		// 输出异常信息
		} catch (FormatThrowable e2) { 	// 捕获FormatThrowable异常
			System.out.println("Exception: " + e2.getMessage());
			e2.printStackTrace(); 		// 输出异常信息
		}
	}
	public static void customException() throws CustomException {
		Throwable cause = new Throwable("继承Exception类的CustomException()方法发生异常!");
		throw new CustomException("发生错误!", cause);
	}
	public static void formatThrowable() throws FormatThrowable {
		throw new FormatThrowable("继承Throwable类的throwException()方法发生异常!");
	}
}
class CustomException extends Exception { 		// 该类继承父类Exception
	public CustomException() { 				// 默认构造方法
		super(); 							// 继承父类的的默认方法
	}
	public CustomException(String message) { 	// 含有指定详细消息的构造方法
		super(message);
	}
	public CustomException(Throwable cause) { 	// 含有指定的原因的构造方法
		super(cause);
	}
	public CustomException(String message, Throwable cause) { // 含有指定详细消息和指定的原因的构造方法
		super(message, cause);
	}
}
class FormatThrowable extends Throwable { 			// 该类继承Throwable类
	public FormatThrowable() { 					// 默认构造方法
		super(); 								// 继承父类的的默认方法
	}
	public FormatThrowable(String message) { 		// 含有指定详细消息的构造方法
		super(message);
	}
	public FormatThrowable(Throwable cause) { 		// 含有指定的原因的构造方法
		super(cause);
	}
	public FormatThrowable(String message, Throwable cause) { // 含有指定详细消息和指定的原因的构造方法
		super(message, cause);
	}
}

 

分享到:
评论

相关推荐

    Java范例大全 源码

    首先,全书以Java开发环境搭建开篇,循序渐进地介绍了Java语法的方方面面,不仅包括变量、语句、字符串、数组、类、集合、面向对象等必备的基础语法,而且还涵盖异常处理与反射机制、I/O文件操作、线程、数据库操作...

    JAVA范例 四)异常处理---编译时异常、运行时异常

    NULL 博文链接:https://kellhan.iteye.com/blog/1129310

    Java范例开发大全

    《Java范例开发大全》共22章,内容涉及Java开发环境的搭建、Java基础类型与运算符、条件控制语句、异常处理、数组、字符串、输入输出流、面向对象及其四大特征、内部类与接口、Java常用类、集合、多线程编程、Java...

    java异常处理ppt

    此文档主要讲解了java异常处理的基本问题,适合初学者,比较详细,有范例,有讲解.

    java范例开发大全(pdf&源码)

    第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常...

    JAVA 范例大全 光盘 资源

    第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 实例74 throws声明异常的实例 185 实例75 自定义异常类 187 实例76 使用finally避免资源漏洞 189 实例77 反射机制 191 第10章 I/...

    java范例开发大全源代码

     第4章 异常处理(教学视频:62分钟) 54  4.1 编译时异常 54  实例35 除0发生的算术异常(ArithmeticException) 54  实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55  实例37 数组...

    java范例开发大全

    第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    Java范例开发大全 (源程序)

     第4章 异常处理(教学视频:62分钟) 54  4.1 编译时异常 54  实例35 除0发生的算术异常(ArithmeticException) 54  实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55  实例37 数组元素...

    基于opencv3.1库的JAVA源码

    范例6-3-2 Laplacian Filter处理2 171 范例6-3-3 Laplacian Filter灰阶影像处理 173 范例6-3-4 Laplacian Filter使用核矩阵 173 范例6-4-1 Sobel Filter使用核矩阵 175 范例6-4-2 Sobel Filter处理使用内建API 176 ...

    JAVA编程模式与范例

    《Java编程模式与范例》分为基础部分和高级部分两册。本书为高级编程模式与范例,总共分为6种模式,近200个范例,内容涉及:修饰符、访问控制与类设计的模式与范例;软件包、软件接口与异常处理的模式与范例等。

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java开发技术大全(500个源代码).

    示例描述:本章学习Java的异常处理。 demoException_1.java 异常示例1 demoException_2.java 异常示例2 demoException_3.java 异常示例3 demoException_4.java 异常示例4 demoException_5.java 异常示例5 ...

    java源码包2

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java教程.rar

    YiChang1.java 异常处理的一般形式 第9章 示例描述:演示如何使用流。 UseFileInputStream.java 关于流的简单例子 第10章 示例描述:介绍并演示多线程的使用。 XianCheng2.java 基于多线程的例子 第11章 ...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包4

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java学习笔记7.0

    《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...

    java源码包3

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

Global site tag (gtag.js) - Google Analytics