异常,是java代码中比较严重的问题,分为编译时异常和运行异常。编译异常,是java代码运行编译时,虚拟机处理的异常;运行异常,是非常严重的异常,可能能会造成整个程序崩溃。
JAVA用try catch来处理异常,try是抛出异常,catch是捕捉异常,通常会有finally,是总会执行的代码
package demo1;
public class Exceptions {
public static void main(String[] args) {
int a = 10;
int b = 0;
// 这个时候就会出现异常
try{
int c = a/b;
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
这种虽然也可以抛出异常,但是当抛出一场过多时,一般就很难知道具体哪一行代码出现问题,所以cath有多个分支,因而,我们也需要catch异常的具体分支
package demo1;
public class Exceptions {
public static void main(String[] args) {
int a = 10;
int b = 0;
// 这个时候就会出现异常
try{
int c = a/b;
}catch(ArithmeticException e){
System.out.println(e.getMessage());
}
}
}
运行结果看似和上述相同,实际上却差很多 如果有多个异常,就会出现无法区分
自定义异常:
package demo2;
public class test {
public static void main(String[] args) {
Bank bank = new Bank();
try {
bank.inandout(-10, 100);
} catch (BankException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package demo2;
public class Bank {
void inandout(int in,int out) throws BankException{
if(in < 0 || out > 0){
throw new BankException();
}
}
}
package demo2;
public class test {
public static void main(String[] args) {
Bank bank = new Bank();
try {
bank.inandout(-10, 100);
} catch (BankException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
9069

被折叠的 条评论
为什么被折叠?



