`

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范例 四)异常处理---编译时异常、运行时异常"这个主题,结合标签"源码"和"工具",我们可以理解这与实际编程实践和可能使用的开发工具如Struts2框架相关。 首先,我们来看编译时异常。编译时...

    Java范例大全 源码

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

    Java范例开发大全

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

    java范例开发大全

    《Java范例开发大全》是一本全面覆盖Java编程的实用指南,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言。这本书包含了从基础到高级的各类编程概念和技巧,通过丰富的实例代码来阐述理论知识,使学习过程...

    java 范例大全源代码

    异常处理是Java程序中的重要部分,用于处理运行时错误。`try-catch-finally`结构用于捕获和处理异常,确保程序的健壮性。源代码中会包含各种异常处理的实例,帮助你理解如何正确地处理可能出现的问题。 集合框架是...

    《java范例大全》源代码

    《Java范例大全》源代码是一份非常宝贵的资源,它包含了大量的Java编程示例,旨在帮助开发者深入理解和掌握Java语言的各种特性和用法。这份源代码不仅覆盖了基础语法,还包括了面向对象编程、异常处理、集合框架、多...

    java开发范例大全

    3. **异常处理**:Java中的异常处理是程序健壮性的重要组成部分。范例可能演示如何使用try-catch-finally语句块,以及如何自定义异常,这对于编写能够正确处理错误和异常情况的代码至关重要。 4. **集合框架**:...

    JAVA编程通用范例

    2. **异常处理**:Java提供了丰富的异常处理机制,包括try-catch-finally语句块和自定义异常。范例中可能会包含各种异常的捕获和处理,帮助你理解如何优雅地处理程序运行时可能出现的错误。 3. **集合框架**:Java...

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

    2. **异常处理**:Java中的异常处理是程序健壮性的重要保障。这部分可能包含try-catch-finally语句块的使用,自定义异常的创建,以及如何进行异常的捕获和处理。 3. **集合框架**:Java集合框架是存储和管理数据的...

    Java范例开发大全代码

    3. **异常处理**:Java中的try-catch-finally结构,自定义异常,以及如何有效地处理运行时错误。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等数据结构的使用,以及迭代器、泛型等概念。 5. **IO...

    Java通用范例开发金典源代码

    - 异常处理:Java的try-catch-finally结构,用于捕获和处理运行时错误。 - 数组和集合:如ArrayList、LinkedList、HashMap等数据结构的使用示例。 2. **面向对象编程** - 接口:如何定义接口,以及接口与抽象类...

    java异常处理ppt

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

    Java通用范例开发金典

    3. **异常处理**:Java的异常处理机制允许程序员优雅地处理程序运行时可能出现的问题。通过try-catch-finally结构,可以捕获并处理异常,保证程序的健壮性。 4. **集合框架**:Java集合框架包括List、Set、Map等...

    JAVA 范例开发大全 源代码

    3. **异常处理**:了解何时使用try-catch-finally语句块,以及自定义异常的创建和使用。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等数据结构的使用,以及如何遍历和操作集合。 5. **IO流**:...

    java2范例入门与提高(初学JAVA者)

    而“Java2范例入门与提高”很可能是本书的主要内容,包含了大量的代码示例,这些示例涵盖了基本语法、控制流(如if-else、switch、for、while)、数组、字符串处理、异常处理、集合框架、IO流、多线程、网络编程等多...

    Java通用范例 开发金典

    3. **异常处理**:Java提供了强大的异常处理机制,源代码可能包含try-catch-finally语句块以及自定义异常的实例,用于处理运行时错误。 4. **集合框架**:Java集合框架包括List、Set、Map等接口及其实现类,如...

    Java范例程序.rar_Java范例

    3. **异常处理**: - **异常类层次**:Java中的异常类都继承自`java.lang.Throwable`,主要分为Error和Exception两大类。 - **try-catch-finally**:通过try块捕获异常,catch块处理异常,finally块确保代码的整洁...

    Java2范例入门与提高PDG格式

    其次,Java2的语法结构,包括基本数据类型、变量、运算符、流程控制语句(如if、for、while)、异常处理等,都是初学者必须掌握的基本功。同时,类和对象的创建、方法定义以及主函数(main方法)的使用,也是编写...

    《Java通用范例开发金典》

    在Java编程中,通用范例通常包括基础语法、面向对象编程、异常处理、集合框架、多线程、网络编程、I/O流、数据库操作、GUI设计、反射、注解等多个方面。下面将对这些知识点进行详细的阐述: 1. **基础语法**:Java...

    Java范例开发大全全书代码

    《Java范例开发大全》是一本深度探讨Java编程实践的书籍,其提供的全书源代码压缩包涵盖了370多个实例,旨在帮助开发者全面理解并掌握Java语言的应用。这些实例覆盖了Java语言的基础到高级特性,是学习和提升Java...

Global site tag (gtag.js) - Google Analytics