让公司做网站要注意什么,网站关键字如何设置,无锡网站制作哪家有名,网站建设产品介绍认识异常
异常就是程序出现的问题#xff1b;
Integer.valueOf(aaaa); 异常体系
因为写代码时经常会出现问题#xff0c;Java的设计者们早就为我们写好了很多个异常类#xff0c;来描述不同场景下的问题。而有些类是有共性的所以就有了异常的继承体系 Error
Integer.valueOf(aaaa); 异常体系
因为写代码时经常会出现问题Java的设计者们早就为我们写好了很多个异常类来描述不同场景下的问题。而有些类是有共性的所以就有了异常的继承体系 Error代表的系统级别错误属于严重问题也就是说系统一旦出现问题sun公司会把这些问题封装成Error对象给出来说白了Error是给sun公司自己用的不是给我们程序员用的因此我们开发人员不用管它
Exception叫异常它代表的才是我们程序可能出现的问题所以我们程序员通常会用Exception以及它的子类来封装程序出现的问题
运行时异常RuntimeException及其子类编译阶段不会出现错误提醒运行时出现的异常如数组索引越界异常非受检
int[] arr {1,2,3,4,5};
Sysout.out.println(arr[5]);
产生ArrayIndexOutOfBoundsExcpetion异常
编译时异常编译阶段就会出现错误提醒的如日期解析异常受检 自定义异常
如果企业自己的某种问题想通过异常来表示那就需要自己来定义异常类了。
应用
public class Test01 {public static void main(String[] args) {}public static void saveAge(int age) throws AgeOutOfBroundException {if(age 0 age 150 ){info(年龄保存成功);}else {throw new AgeOutOfBroundException(年龄超出范围);}}
}
class AgeOutOfBroundException extends Exception{public AgeOutOfBroundException() {}public AgeOutOfBroundException(String 年龄超出范围) {}
}
注意咯自定义异常可能是编译时异常也可以是运行时异常
1.如果自定义异常类继承Excpetion则是编译时异常。 特点方法中抛出的是编译时异常必须在方法上使用throws声明强制调用者处理。 2.如果自定义异常类继承RuntimeException则运行时异常。 特点方法中抛出的是运行时异常不需要在方法上用throws声明。
异常处理
比如有如下的场景A调用用BB调用CC中有异常产生抛给BB中有异常产生又抛给A异常到了A这里就不建议再抛出了因为最终抛出被JVM处理程序就会异常终止并且给用户看异常信息用户也看不懂体验很不好。
此时比较好的做法就是1.将异常捕获将比较友好的信息显示给用户看2.尝试重新执行看是是否能修复这个问题。 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test02 {public static void main(String[] args) {try {test1();} catch (ParseException e) {System.out.println(你想要找的文件不存在);;} catch (FileNotFoundException e) {System.out.println(你要解析的时间不正确);throw new RuntimeException(e);}}public static void test1() throws ParseException, FileNotFoundException {SimpleDateFormat dateFormat new SimpleDateFormat(YYYY-MM-dd HH:mm:ss);Date date dateFormat.parse(2028-02-28 22:18:46);System.out.println(date);test2();}private static void test2() throws FileNotFoundException {InputStream inputStream new FileInputStream(D:/movie.pang);}
}第一种处理方式是在main方法中对异常进行try...catch捕获处理了给出友好提示。
第二种处理方式是在main方法中对异常进行捕获并尝试修复 import java.util.Scanner;
/*** 目标掌握异常的处理方式捕获异常尝试修复。*/
public class Test03 {public static void main(String[] args) {while (true){try {System.out.println(getmoney());break;} catch (Exception e) {System.out.println(你输入有误);//打印错误信息}}}public static double getmoney(){Scanner scanner new Scanner(System.in);while (true){System.out.println(请输入你的钱数);double money scanner.nextDouble();if(money 0){return money;}else {System.out.println(你输入的价格不合适);}}}
}