异常处理,方案.
在JAVA中,在操作IO流时,需要声明各种异常.
为此,JAVA在后续版本中专门为IO流的异常处理格式做了许多改进.
格式分别为
1/ 异常抛出 如果是自己所制造的异常,而非调用处造成的异常,那么不推荐用!
2/ 传统异常处理方案 之格式(和jdk7处理方案二选一)
3/ jdk7版本 专门为IO设计的异常处理方案 之格式(和传统处理方案二选一)
将会自动释放资源(即自动运行close方法)
4/ jdk9版本 专门为IO设计的异常处理方案 鸡肋!不推荐用!
*/
方案1.异常抛出
//异常抛出 之格式 如果是自己所制造的异常,而非调用处造成的异常,那么不推荐用!
public static void throwException() throws IOException {
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("\\压缩软件.exe"));
BufferedInputStream bufferedInputStrea = new BufferedInputStream(new FileInputStream("\\07解压缩软件.exe"));
bufferedInputStrea.close();
bufferedOutputStream.close();
}
方案2.传统异常处理(二选一)
//传统异常处理方案 之格式(和jdk7处理方案二选一)
public static void commonException(){
BufferedOutputStream bufferedOutputStream = null;
BufferedInputStream bufferedInputStream = null;
try{
bufferedInputStream = new BufferedInputStream(new FileInputStream("\\07解压缩软件.exe"));
bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("\\压缩软件.exe"));
}catch (IOException e){
e.printStackTrace();
}finally {
try{
bufferedInputStream.close();
bufferedOutputStream.close();
}catch(IOException close){
close.printStackTrace();
}
}
}
方案3.JDK7异常处理(二选一)
//jdk7 的异常处理方案 之格式(和传统处理方案二选一)
public static void jdk7Exception(){
//jdc7异常处理方案 将会自动释放资源(即自动运行close方法)
try(BufferedInputStream bufferedInputStreamObj = new BufferedInputStream(new FileInputStream("\\07解压缩软件.exe"));
BufferedOutputStream bufferedOutputStreamObj = new BufferedOutputStream(new FileOutputStream("\\压缩软件.exe"));
){
byte[] byteTemp = new byte[1024];
while (bufferedInputStreamObj.read(byteTemp)!=-1){
bufferedOutputStreamObj.write(byteTemp);
}
}catch (IOException e){
e.printStackTrace();
}
}
方案4.JDK9异常处理 不推荐
public static void jdk9Exception() throws FileNotFoundException {
//虽然也带异常处理方案,但不推荐!
BufferedOutputStream bufferedOutputStreamObj = new BufferedOutputStream(new FileOutputStream("\\压缩软件.exe"));
BufferedInputStream bufferedInputStreamObj = new BufferedInputStream(new FileInputStream("\\07解压缩软件.exe"));
try(bufferedInputStreamObj;bufferedOutputStreamObj){
}catch (IOException e){
e.printStackTrace();
}
}