Bigdata Development Java_Study_08(Exception)
来源:互联网 发布:域名备案年审 编辑:程序博客网 时间:2024/06/10 14:20
Exception
/*导致程序中断的错误。Error:JVM出错,内存不足等。 不能处理,程序无法恢复。Exception:代码逻辑错误,程序不严谨。 可以处理,程序还能继续运行。运行时异常(unchecked):编译器不要求我们处理的错误。NullPointerException,ArrayIndexOutOfBoundsException都是继承自RuntimeException异常(checked):编译器要求我们必须处理的错误。继承自Exception处理异常的两种方式1。使用try-catch-finally语法处理。 这是自己处理的方式。2。使用throw和throws关键字交给方法的调用者进行处理。 交给别人处理。抛出(throw)异常,当我们程序运行产生异常,会自动生成异常对象,提交给JVM。捕获(catch)异常,JVM收到异常对象后,自动寻找能够处理这个异常的代码并把异常对象交给他。*/// 自定义异常,继承自 Exception// 并不是所有会导致程序崩溃的错误叫做异常,// 所有不符合预期效果的现象都可以叫做异常public class NumberException extends Exception { public NumberException() { super(); // TODO Auto-generated constructor stub } public NumberException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); // TODO Auto-generated constructor stub } public NumberException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } public NumberException(String message) { super(message); // TODO Auto-generated constructor stub } public NumberException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub }} public void tryCatchTest(int a, int b) { // 使用 try-catch 捕获和处理异常 try { // 可能产生异常的代码 // 从上往下执行,直到产生异常,后续的代码不在执行 System.out.println("准备开始除法计算"); int c = a / b; System.out.println("除法计算正常执行"); String text = null; // 如果产生多个异常,就需要多个 catch 分别处理 int lenght = text.length(); }catch (ArithmeticException e) { // try 中代码产生异常以后,对异常进行处理 // e 就是捕获到的异常对象 // 只要捕获到异常,程序就不会终止,继续向下执行 // try 中没有产生异常,catch 中的代码就不会执行 System.out.println("程序产生异常了"); // 通常不适用 Exception,而是使用具体的异常类型,让异常处理更具有针对性 // 获取异常的描述信息 e.getMessage() System.out.println(e.getMessage()); // 打印异常产生的堆栈信息,方法调用过程,错误代码位置 e.printStackTrace(); }catch (NullPointerException e) { // catch 可以有多个,每个 catch 只处理一种异常 System.out.println("产生了空指针异常"); }finally { // finally 是可选的,可写可不写 // 无论是 try 还是 catch 执行完后都会执行这里的代码 System.out.println("finally 执行了"); } } // 声明方法的时候,可以通过 throws 说明当前方法可能产生的异常 // 方法抛出异常,方法内部产生的异常不处理,抛调用方法谁来处理 public void throwTest() throws ArithmeticException { int a = 10; int b = 0; int c = a / b; } public void addNumber(int a) throws NumberException { // 输入的数字小于 10 if (a > 10) { // 运行时异常由系统抛出 // 自定义异常都是继承在 Exception 的, // 需要使用 throw 关键字手动抛出 // 告诉方法调用者,方法执行的过程各种产生错误,改如何处理 throw new NumberException("你输入的数字大于 10"); } int b = a * 10; }
阅读全文
1 0
- Bigdata Development Java_Study_08(Exception)
- Bigdata Development Java_Guidance_01
- Bigdata Development Java_Guidance_02
- Bigdata Development Web_Study_01(HTML)
- Bigdata Development Database_Study_01
- Bigdata Development Java_Study_04(interface 堆,栈)
- Bigdata Development Web_Study_02(Servlet使用,table标签)
- Bigdata Development Web_Study_04(Session和Cookie)
- Bigdata Development Java_Study_09(文件,io流)
- Bigdata Development Java_Study_01(二进制计算符号,Math常用方法)
- Bigdata Development Java_Study_02 (继承 基本定义以及构造方法)
- Bigdata Development Java_Study_03(继承中关键字,抽象类)
- Bigdata Development Java_Study_06(集合Collection和Map)
- Bigdata Development Java_Study_07(equals,HashCode和compare Date)
- Bigdata Development Database_Study_02(多表查询,外键,事务)
- Bigdata Development Web_Study_05(JSP中九大内置对象)
- bigdata
- BigData
- Disk Schedule HDU
- linux02-自动部署、awk/sed/cron/cut/wc/uniq
- 《leetCode》:Valid Parentheses
- Unicode HOWTO 中文翻译
- Eclipse Gradle Proxy Setting
- Bigdata Development Java_Study_08(Exception)
- Form表单利用jQuery Validate验证ajaxSubmit提交
- MFC异步WSAAsyncSelect 在vs2015下编译出错的问题
- 8.8 模拟
- 【bzoj2301】[HAOI2011]Problem b
- Hibernate 转账功能 (事务处理)
- Python爬虫番外篇之Cookie和Session
- 扩增子分析解读2提取barcode,质控及样品拆分,切除扩增引物
- 2017.8.8.蒟蒻的话。