异常处理
异常是指 运行期出现的错误 观察错误的名字和行号最重要
ArrayIndexOutOfBound
所谓错误是指程序运行的过程中发生的一些异常事件(除0溢出,数组下标越界,所要读取的文件不存在)
设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果
java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给java运行时系统,这个过程称为throw异常;当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为catch异常
try{...} catch(ArithmathicException e){...}
public void someMethod()throws SomeException{ //声明该方法可能抛出的异常
if(someCondition()){
throw new SomeException(""); //构造并抛出异常对象
}
}
try{
someMethod();
}catch(someException e){
//异常处理代码
}
异常类 throwable:Error(处理不了的错误)、Exception(可以处理的异常)(RuntimeException,其他exception)
Exception 异常类的父类 一般需要用户显示的声明或捕获
finally中的代码都会最后被执行,通常在finally语句中可以进行资源的清除工作:关闭打开的文件,删除临时文件
printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容
getMessage()方法,用来得到有关异常事件的信息
void m(int i) throws ArithmeticException{
if(i==0) throw new ArithmeticException("被除数不能为0");}
使用自定义异常一般有如下步骤:
1.通过继承java.lang.Exception 类声明自己的异常类
2.在方法适当的位置 生成自定义异常的实例, 并用throw语句抛出
3.在方法的声明部分用throws语句声明该方法可能抛出的异常
class MyException extends Exception{
private int id;
public MyException(String message, int id){
super(message);
this.id = id;
}
public int getId(){
return id;
}
注意:重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常
数组
java中使用关键字new创建数组对象
数组名 = new 数组元素的类型[数组元素的个数]
int []s;
s = new int[5]
class Date{...}
Date [] date;
date = new Date[5];
二维数组可以看成以数组为元素的数组
静态初始化:int intA[][] = {{1,2},{1,2,3}};
动态初始化: int a[][] = new int[3][5] or int b[][] = new int[3][] b[0] = new int [1]...
基本类
String类
常用方法
public char charAt(int index);//返回字符串中第index个字符
public int length();//返回字符串的长度
public int indexOf(String str);//返回字符串中出现str的第一个位置
public int indexOf(String str, int fromIndex);//返回字符串中从fromIndex开始出现str的第一个位置
public boolean equalsIgnoreCase(String another);//比较字符串与another是否一样(忽略大小写)
public String replace(char oldChar, char newChar);//在字符串中用newchar字符替换oldChar字符
静态重载方法
public static String valueOf(..)可以将基础数据类型转成字符串类型
重写toString
public String [] split( )
String s = "Mary,F,1976";
String [] sp = s.split(",");
StringBuffer 类
java.lang.StringBuffer 代表可变的字符序列
StringBuffer和String类似,但StringBuffer可以对其字符串进行改变
构造方法:
StringBuffer();创建一个不包含字符序列的空的StringBUffer对象
StringBuffer(String str);// 创建一个StringBuffer对象,包含与String对象str相同的字符序列
重载方法public StringBuffer append() 可以为该StringBuffer对象添加字符