标签:方式 天气 日志 color sys bytes 代码 无法 static
编译时异常是指程序正确 而由外界条件不满足而产生的异常 java 中要求必须去捕捉住这类异常 不然无法通过编译
运行时异常是指程序存在着bug 如空指针异常 数组下标越界 都属于 运行时异常
Exception:是程序本身可以处理的异常
Error:是程序无法处理的错误,这些错误标识故障发生于虚拟机自身或者发生在虚拟机试图执行应用时,一般不需要程序处理,例如:内存空间不足,栈溢出
package com.exception; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * throws 在方法的声明处,显式的抛出该异常对象的类型 * 不推荐 * @author yyx 2019年8月18日 */ public class ExceptionThrows { public static void main(String[] args) throws FileNotFoundException, IOException { String filepath = "D:" + File.separator + "exception.txt"; FileOutputStream fos = new FileOutputStream(filepath); String content = "今天是2018/4/8,天气很好"; byte[] array = content.getBytes(); fos.write(array); fos.close(); } }
自定义异常对象只有抛出后才能被catch
package com.exception; /** * throw 在方法内抛出异常对象 不推荐 * * @author yyx 2019年8月18日 */ public class ExceptionThrow { public static void main(String[] args) { try { int i = 3; if (i > 4) { System.out.println("恭喜你,答对了!"); } else { throw new MyException("对不起,算数错误"); } } catch (Exception e) { System.out.println(e.getMessage()); } } } class MyException extends Exception { private static final long serialVersionUID = 1L; public MyException(String msg) { super(msg); } }
finally里面的代码无论是否出现异常都会执行
package com.exception; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * 推荐 * @author yyx * 2019年8月18日 */ public class ExceptionTryCatch { public static void main(String[] args) { String filepath = "D:" + File.separator + "exception.txt"; FileOutputStream fos = null; try { fos = new FileOutputStream(filepath); String content = "今天是2018/4/8,天气很好"; byte[] array = content.getBytes(); fos.write(array); } catch (IOException e) { e.printStackTrace();// 一般此处写入日志 } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } ReturnExceptionDemo reDemo=new ReturnExceptionDemo(); try { reDemo.methodA(); } catch (Exception e) { System.out.println(e.getMessage()); } int i = reDemo.methodB(); System.out.println(i); } } class ReturnExceptionDemo { void methodA() { try { System.out.println("进入方法A"); throw new RuntimeException("制造异常"); } finally { System.out.println("用A方法的finally"); } } int methodB() { try { System.out.println("进入方法B"); return 1; } finally { System.out.println("调用B方法的finally"); return 2; } } }
标签:方式 天气 日志 color sys bytes 代码 无法 static
原文地址:https://www.cnblogs.com/fengfuwanliu/p/10375951.html