一.
数组是对象,其内可以是基本数据类型或者对象的引用(存放的是对象的引用,而不是对象本身)
二.
什么是异常
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数组 1. 数组定义:数组是Java中存储固定...
Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。...以上是对Java数组练习题中的主要知识点的详细解析,通过这些题目,可以更好地理解和掌握Java中数组的操作、特性以及异常处理。
### 一、Java数组 1. **数组定义**:数组是相同类型数据的集合,它们在内存中存储为连续的单元。数组提供了一种高效的方式来存储和访问多个值。在Java中,数组可以通过声明数组变量和初始化来创建。 2. **数组声明...
Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...
9. **Java集合框架与数组的关系**:虽然数组是基础,但Java集合框架提供了更灵活的数据结构,如ArrayList和LinkedList,它们在某些场景下比数组更具优势。 10. **性能考虑**:数组在内存分配上是静态的,一旦创建,...
Java数组是Java编程语言中的基本数据结构之一,它允许我们存储多个同类型的元素在一个单一的变量中。数组的使用在程序设计中至关重要,因为它提供了一种高效、有序的方式来管理和访问数据。下面将深入探讨Java数组的...
Java数组是编程基础中的核心概念,它是一种存储固定数量同类型元素的数据结构。在这个"Java 数组练习"中,我们主要关注的是如何在Java中创建、初始化、操作和理解数组。下面将详细介绍Java数组的相关知识点。 1. **...
总之,"JAVA开发实战经典"的第4章专注于数组习题讲解,旨在帮助读者掌握Java数组的精髓,提升编程技能。通过深入学习和实践,读者将能够熟练运用数组解决各种编程问题,为后续的Java开发打下坚实的基础。
在这个Java数组练习题中,涉及到了数组的访问、复制、存储位置、排序、初始化、异常处理以及相关语法等多个知识点。 1. **数组的访问**:数组的元素通过下标来访问,下标是从0开始的整数,例如`array[0]`表示访问...
在这个“Java数组使用视频教程”中,我们将深入理解数组的内存管理、元素的创建与使用。 首先,我们来探讨“一维数组内存分析”。在Java中,数组在内存中是一段连续的存储空间,每个元素都有一个唯一的索引,从0...
以下是关于Java数组的一些关键知识点: 1. **数组的访问**:数组的元素通过下标来访问,下标从0开始,数组的长度可以通过`.length`属性获取,例如`Array.length`。 2. **数组复制**:在Java中,使用`=`进行数组...
根据提供的文档信息,我们可以归纳和扩展出一系列与Java数组相关的知识点。这些知识点涵盖了数组的基本概念、操作、初始化、异常处理等多个方面。 ### 数组的基本概念 1. **数组的元素访问方式**:数组中的元素...
"java数组资料"这个主题涵盖了Java基础知识的核心技术,特别是关于数组的知识。数组允许程序员在单个变量中存储一组相同类型的数据,这对于处理批量数据或者执行批量操作非常有用。 1. **数组的概念与定义** - ...
### Java数组及其常用类 #### 一、Java中的数组 在Java编程语言中,数组是一种基本的数据结构,用于存储固定大小的同类型元素集合。它允许程序员在一个单一的标识符下管理一系列数值或其他数据。 ##### 1. 数组的...
通过阅读和理解这些源码,你可以更好地掌握Java数组的使用。 总之,Java第5章关于数组的内容是学习Java编程的基础,理解和熟练运用数组对于后续的学习和实际项目开发至关重要。通过实践和代码分析,可以加深对数组...
总结,Java数组是编程中必不可少的数据结构,理解并熟练掌握数组的声明、初始化、操作和应用,将对编写高效、简洁的代码大有裨益。学习数组,不仅可以帮助你处理批量数据,也为深入学习更复杂的数据结构打下坚实的...
Java数组是程序设计中基础且重要的数据结构,用于存储同类型的数据集合。...以上就是关于Java数组相关的详细知识点,包括访问方式、复制方法、存储位置、初始化、异常处理以及数组在多维情况下的应用等。