目录
一、API
1.application programming interface:应用程序接口;
2.API是一堆已经写好的Java代码;
3.API中一些包的分类:
(1)java.lang:语言包,最基础的包;
- lang包的类是不需要导入的;
(2)java.util:集合框架,帮助类;
(3)java.io:文件操作的包;
(4)javax.swing 和 javax.awt:Java的图形化界面;
(5)java.sql:用来链接数据库的包;
(6)java.net:用来堆网络进行操作的包;
二、异常
1.异常和bug是不同的,异常是可能会出现问题的代码,bug是漏洞;
2.异常的问题总共有三种:
(1)编译器异常:以后自己解决的;
(2)运行期异常:这个是发生最多的,也是自己解决;
(3)逻辑异常:这个要使用自定义异常解决,是最难解决的;
3.异常的语法:
(1)try{可能会出现异常的代码}catch(异常类型 名字){出现异常后要处理异常的代码}finally{不管有没有出现异常,这里的代码都会执行}
(2)catch语句可以有多个;
(3)在处理异常的时候,一般直接使用 名字.printStackTrace();就不用管了;
public class Demo {
public static void main(String[] args) throws ArithmeticException {
Scanner sc = new Scanner(System.in);
try {// 有可能出现异常的代码
System.out.println("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int num2 = sc.nextInt();
int result = num1 / num2;
System.out.println("num1 / num2 = " + result);
}catch (ArithmeticException e){
// 处理异常的代码
e.printStackTrace();
// System.out.println(e.getMessage());
// System.err.println(e.getMessage());
}catch (InputMismatchException e){
e.printStackTrace();
}catch (Exception e){
e.printStackTrace(); // 不建议直接使用Exception
}finally {
System.out.println("hello world"); // finally中的代码,不管有没有异常都会执行
}
System.out.println("over");
}
(4)为什么要处理异常:
- 保证程序能够完整的执行完毕;
- 保证程序的健壮性;
(5)异常名字.printStackTrace():查看异常的类型以及异常出现的位置;
(6)异常名字.getMessage():简单显示异常的信息,不会显示异常出现的位置;
(7)对于异常,我们应当将其作为一个流程的跳转;
4.异常的体系:
(1)Throwable 下面有Error和Exception两个实现类;
(2)Exception 下面有RunTimeException和一般异常;
- 注意:一般异常是必须要捕获的
5.RunTimeException常见的异常:
(1)ArrayIndexOutOfBoundsException:数组下标越界
(2)NullPointerException:空指针异常
(3)InputMismatchException:输入不匹配异常
(4)ArithmeticException:算术异常
(5)NumberFormatException:数组格式异常
(6)ClassCastException:类异常
(7)ClassNotFoundException:类未建立异常
6.抛出异常:
(1)关键字:throws和throw
(2)throws是抛出异常,throw是手动抛出异常
(3)格式:
// 自定义异常
public class AgeException extends Exception {
public AgeException() {
}
public AgeException(String message) {
super(message);
}
}
public class Student {
private int sage;
public int getSage() {
return sage;
}
public void setSage(int sage) throws AgeException { // 抛出异常
if(sage < 0 || sage > 150){
AgeException ageException = new AgeException("年龄只能在0~150之间");
throw ageException; // 手动抛出异常
}else {
this.sage = sage;
}
}
}
(4)异常一但抛出,就需要在调用的时候去处理这个异常;
7.异常捕获可以嵌套
8.如果遇到异常,可以先查看API文档,找到异常的类型以及位置,再去解决这个异常
三、自定义异常
1.创建一个自定义异常需要继承Exception类
2.生成构造方法
// 自定义异常
public class AgeException extends Exception {
public AgeException() {
}
public AgeException(String message) {
super(message);
}
}