异常类包括两大类:Exception和Error.
抛出异常有两种方式:(1)系统自动抛出异常;(2)指定方法抛出异常.
throw和throws的区别:(1)throws用于方法头,表示的只是异常的申明,而throw用于方法内部,抛出的是异常对象。 (2)throws可以一次性抛出多个异常,而throw只能一个 (3)throws抛出异常时,它的上级(调用者)也要申明抛出异常或者捕获,不然编译报错。而throw的话,可以不申明或不捕获(这是非常不负责任的方式)但编译器不会报错。
异常是指在运行代码序列中产生的异常情况,
换句话说异常是一个运行时的错误.
程序在运行时出现异常没有相应的处理措施时,java会自动捕获并在异常发生处结束执行
public class IllegeNameException extends Exception{
public IllegeNameException(){
}
public IllegeNameException(String s){
super(s);
}
}
public class ExceptionTest {
public static void main(String[] args) throws MyException {
//创建异常对象(只new了异常对象,并没有手动抛出)
MyException e=new MyException("用户名不能为空!");
//打印异常堆栈信息
e.printStackTrace();
String msg=e.getMessage();
System.out.println(msg);
}
}
流的分类包括:输入流,输出流,字节流,字符流
所有的输出流都实现java.io.Closeable接口,都是可关闭的,都有close()方法
输出流在最后输出之后,一定要记得flush()刷新一下
mport java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IO06 {
public static void main(String[] args) throws IOException {
FileReader in=null;
FileWriter out=null;
try {
in=new FileReader("myfile");
out=new FileWriter("wo",true);
char[] chars=new char[1024*1024];
int readCount=0;
while((readCount=in.read(chars))!=-1){
out.write(chars,0,readCount);
}
out.flush();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
if(in!=null){
in.close();
}
if(out!=null){
out.close();
}
}
}
}