`
roway
  • 浏览: 50679 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第五:Java数组与异常

 
阅读更多

一.

数组是对象,其内可以是基本数据类型或者对象的引用(存放的是对象的引用,而不是对象本身)

二.

什么是异常
a.异常是程序运行过程中发生的事件,该事件可以中断程序指令的正常执行流程。
b.Java异常分为两大类:
1.错误(Error)是指JVM系统内部错误、资源耗尽等严重情况
2.违例(Execption)则是指其他因编程错误或偶然的外在因素导致的一般性问题,例如对负数开平方根、
空指针访问、试图读取不存在的文件以及网络连接中断等。

Java中异常的分类:

1.运行时异常(runtime exception,unchecked exception)
2.非运行时异常(checked exception)

三.

对于非运行时异常的两种处理方式:

1.继续抛出
2.try...catch

四.

catch处理异常的先后顺序(小的一定放在大的前面)

五.

关于在try中是return和System.exit(0)的情况

public static void main(String[] args) {
		String str="";
		try {
			str = "hello world";
			//return;
			System.exit(0);
		} catch (Exception e) {
			System.out.println("catch executed");
		}finally{
			System.out.println("finally executed");
		}
		System.out.println(str);
	}

/**
* 执行return,会执行finally,然后就退出(不会执行后面的那个打印语句)
* 执行System.exit(0),直接退出程序(连finally也不执行)

*/

六、

异常处理机制
a.Java异常处理宗旨:
1.返回到一个安全和已知的状态
2.能够让用户执行其他的命令
3.如果可能,则保存所有的工作
4.如果有必要,可以退出以避免造成进一步的危害
b.处理机制
1.Java程序执行过程中如出现异常,系统会监测到并自动生成一个相对应的异常类对象,然后再将它交给运行时系统
2.运行时系统再寻找相应的代码来处理这一异常。如果Java运行时系统找不到可以处理异常的代码,则
运行时系统将终止,相应的Java程序也将退出
3.程序员通常对错误(Error)无能为力,因而一般只处理违例(Execption)

c.自定义异常的使用

//用户自定义类必须继承Exception类
public class MyException extends Exception {
	private static final long serialVersionUID = -6378078717298014790L;

	private int idnumber;

	public MyException(String message, int id) {
		// 调用父类(Exception)的构造器...这下是关键
		super(message);
		this.idnumber = id;
	}

	public int getId() {
		return idnumber;
	}
}

//使用Debug调试程序的运行过程......一个很好学习异常的例子!
public class TestCustomizingException {
	public void regist(int num) throws MyException {
		if(num<0){
			throw new MyException("人数为负值,不合理",3);
		}
		System.out.println("登记人数:"+num);
	}
	public void managet(){
		try {
			regist(-100);
		} catch (MyException e) {
			System.out.println("登记失败,出错种类:   "+e.getId());
		}
		System.out.println("本次登记操作结束");
	}
	public static void main(String[] args) {
		new TestCustomizingException().managet();
	}

}

throw:

throw则是指抛出的一个具体的异常类型

import java.util.Scanner;

//用户自定义异常的使用
public class TestThrowException {
	public static void main(String[] args) {
		TestThrowException t = new TestThrowException();
		System.out.print("请输入您的年龄:");
		System.out.println("您的年龄:" + t.inputAge());
	}

	public int inputAge() {
		int result = -1;
		Scanner scan = new Scanner(System.in);
		// 当输入的数不符合的时候,系统进入死循环
		while (true) {
			try {
				result = Integer.parseInt(scan.next());
				if (result < 0 || result > 130) {
					// 自定义异常类的使用
					Exception me = new Exception("年龄超出合理范围!");
					throw me;
				}
				break;// 执行到break就可以退出死循环
			} catch (Exception e1) {
				System.out.print(e1.getMessage() + "请重新输入:");
			}
		}
		return result;
	}
}

throws:
throws是用来声明一个方法可能抛出的所有异常信息

import java.io.FileInputStream;
import java.io.IOException;

//抛出异常,让调用者去处理
public class TestThrowsException {
	public static void main(String[] args) {
		TestThrowsException t = new TestThrowsException();
		try {
			t.redFile();
		} catch (IOException e) {
			System.out.println(e);
		}
	}

	// 此方法不处理异常,抛出异常,让调用它的方法去处理异常
	public void redFile() throws IOException {
		FileInputStream in = new FileInputStream("myfile.txt");
		int b;
		b = in.read();
		while (b != -1) {
			System.out.print((char) b);
			b = in.read();
		}
		in.close();
	}
}


七、

断言(Assert)---知道有这个东西
a.从JDK1.4版本开始,Java语言中引入了断言机制---允许Java开发者在代码中加入一些检查语句,主要
用于程序调试目的:
1.断言机制在用户定义的boolean表达式(判定条件)结果为false时抛出一个Error对象,其类型为AssertionError
2.当我们需要在约定的条件不成立时中断当前操作的话,可以使用断言
3.作为Error的一种,断言失败也不需捕获处理或者声明抛出,一旦出现了则终止程序、不必进行补救和恢复。
b.启用和禁用断言
1.开启断言功能:
Java运行时环境默认设置为关闭断言功能,因此在使用断言以前,需要在运行Java程序时开启断言功能。
java -ea 一个类名
java -enableassertions 一个类名
2.关闭断言功能:
java -da 一个类名
java -disableassertions 一个类名

分享到:
评论

相关推荐

    Java常见笔试、面试题目深度剖析 Java数组与异常详解

    本资源主要聚焦于两个关键主题:Java数组和异常处理。数组是Java中的基本数据结构,而异常处理则是保证程序健壮性的重要机制。下面我们将深入探讨这两个主题。 一、Java数组 1. 数组定义:数组是Java中存储固定...

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。...以上是对Java数组练习题中的主要知识点的详细解析,通过这些题目,可以更好地理解和掌握Java中数组的操作、特性以及异常处理。

    第6章 Java数组与异常.pdf

    ### 一、Java数组 1. **数组定义**:数组是相同类型数据的集合,它们在内存中存储为连续的单元。数组提供了一种高效的方式来存储和访问多个值。在Java中,数组可以通过声明数组变量和初始化来创建。 2. **数组声明...

    Java数组,Java数组,多线程编程

    Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...

    accp5.0java第八章 数组(改)

    9. **Java集合框架与数组的关系**:虽然数组是基础,但Java集合框架提供了更灵活的数据结构,如ArrayList和LinkedList,它们在某些场景下比数组更具优势。 10. **性能考虑**:数组在内存分配上是静态的,一旦创建,...

    java数组_java_java数组_

    Java数组是Java编程语言中的基本数据结构之一,它允许我们存储多个同类型的元素在一个单一的变量中。数组的使用在程序设计中至关重要,因为它提供了一种高效、有序的方式来管理和访问数据。下面将深入探讨Java数组的...

    Java 数组练习

    Java数组是编程基础中的核心概念,它是一种存储固定数量同类型元素的数据结构。在这个"Java 数组练习"中,我们主要关注的是如何在Java中创建、初始化、操作和理解数组。下面将详细介绍Java数组的相关知识点。 1. **...

    JAVA开发实战经典_课后习题讲解-第4章:数组习题讲解.rar

    总之,"JAVA开发实战经典"的第4章专注于数组习题讲解,旨在帮助读者掌握Java数组的精髓,提升编程技能。通过深入学习和实践,读者将能够熟练运用数组解决各种编程问题,为后续的Java开发打下坚实的基础。

    Java数组练习题.docx

    在这个Java数组练习题中,涉及到了数组的访问、复制、存储位置、排序、初始化、异常处理以及相关语法等多个知识点。 1. **数组的访问**:数组的元素通过下标来访问,下标是从0开始的整数,例如`array[0]`表示访问...

    java数组使用视频教程

    在这个“Java数组使用视频教程”中,我们将深入理解数组的内存管理、元素的创建与使用。 首先,我们来探讨“一维数组内存分析”。在Java中,数组在内存中是一段连续的存储空间,每个元素都有一个唯一的索引,从0...

    Java数组练习题(带答案).pdf

    以下是关于Java数组的一些关键知识点: 1. **数组的访问**:数组的元素通过下标来访问,下标从0开始,数组的长度可以通过`.length`属性获取,例如`Array.length`。 2. **数组复制**:在Java中,使用`=`进行数组...

    Java数组练习题目.docx

    根据提供的文档信息,我们可以归纳和扩展出一系列与Java数组相关的知识点。这些知识点涵盖了数组的基本概念、操作、初始化、异常处理等多个方面。 ### 数组的基本概念 1. **数组的元素访问方式**:数组中的元素...

    java数组资料

    "java数组资料"这个主题涵盖了Java基础知识的核心技术,特别是关于数组的知识。数组允许程序员在单个变量中存储一组相同类型的数据,这对于处理批量数据或者执行批量操作非常有用。 1. **数组的概念与定义** - ...

    Java数组及其常用类.doc

    ### Java数组及其常用类 #### 一、Java中的数组 在Java编程语言中,数组是一种基本的数据结构,用于存储固定大小的同类型元素集合。它允许程序员在一个单一的标识符下管理一系列数值或其他数据。 ##### 1. 数组的...

    Java第5章 数组 含源代码

    通过阅读和理解这些源码,你可以更好地掌握Java数组的使用。 总之,Java第5章关于数组的内容是学习Java编程的基础,理解和熟练运用数组对于后续的学习和实际项目开发至关重要。通过实践和代码分析,可以加深对数组...

    java 数组教程.

    总结,Java数组是编程中必不可少的数据结构,理解并熟练掌握数组的声明、初始化、操作和应用,将对编写高效、简洁的代码大有裨益。学习数组,不仅可以帮助你处理批量数据,也为深入学习更复杂的数据结构打下坚实的...

    Java数组练习题目.pdf

    Java数组是程序设计中基础且重要的数据结构,用于存储同类型的数据集合。...以上就是关于Java数组相关的详细知识点,包括访问方式、复制方法、存储位置、初始化、异常处理以及数组在多维情况下的应用等。

Global site tag (gtag.js) - Google Analytics