异常处理
1 try catch finally 块
package edu.xcdq;
public class Demo01 {
public static void main(String[] args) {
int divisor = 10;
int dividend = 0;
try{ // 试着执行代码块内容
System.out.println( divisor / dividend ); // ArithmeticException 算数异常
}catch (Exception e){ // 捕获异常
e.printStackTrace();
System.out.println("程序捕获到了对应的异常");
}finally { // 不管会不会出错,都会执行
System.out.println("不管会不会出错,都会执行");
}
// System.out.println(divisor / dividend);
System.out.println("啦啦啦啦,我是后续的内容");
System.out.println("啦啦啦啦,我是后续的内容");
}
}
2 抛出异常 throws 和 throw
package edu.xcdq;
public class Demo03 {
public static void main(String[] args) {
}
// 1 可以单独声明异常 2 抛出异常的同时, 必须声明异常
public void setSex(String sex)throws Exception{ // 声明异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new Exception("既不是男也不是女");
}
}
}
3 自定义异常
3.1 父类构造方法
package edu.xcdq;
/*
1 需要继承自Exception
2 需要复写无参构造方法
3 需要复写message参数的构造方法
*/
public class SexException extends Exception {
public SexException(){
}
public SexException(String message){
super(message);
System.out.println("性别异常");
}
}
3.2 自定义异常
package edu.xcdq;
public class Demo04 {
/*
调用者的异常类型要比被调用者的异常类型”大“ Exception >= SexException
*/
public static void main(String[] args)throws SexException {
setSex("变性人");
}
public static void setSex(String sex)throws SexException{ // 舍命有可能有异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new SexException("性别既不是男又不是女");
}
}
}
异常处理
1 try catch finally 块
package edu.xcdq;
public class Demo01 {
public static void main(String[] args) {
int divisor = 10;
int dividend = 0;
try{ // 试着执行代码块内容
System.out.println( divisor / dividend ); // ArithmeticException 算数异常
}catch (Exception e){ // 捕获异常
e.printStackTrace();
System.out.println("程序捕获到了对应的异常");
}finally { // 不管会不会出错,都会执行
System.out.println("不管会不会出错,都会执行");
}
// System.out.println(divisor / dividend);
System.out.println("啦啦啦啦,我是后续的内容");
System.out.println("啦啦啦啦,我是后续的内容");
}
}
2 抛出异常 throws 和 throw
package edu.xcdq;
public class Demo03 {
public static void main(String[] args) {
}
// 1 可以单独声明异常 2 抛出异常的同时, 必须声明异常
public void setSex(String sex)throws Exception{ // 声明异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new Exception("既不是男也不是女");
}
}
}
3 自定义异常
3.1 父类构造方法
package edu.xcdq;
/*
1 需要继承自Exception
2 需要复写无参构造方法
3 需要复写message参数的构造方法
*/
public class SexException extends Exception {
public SexException(){
}
public SexException(String message){
super(message);
System.out.println("性别异常");
}
}
3.2 自定义异常
package edu.xcdq;
public class Demo04 {
/*
调用者的异常类型要比被调用者的异常类型”大“ Exception >= SexException
*/
public static void main(String[] args)throws SexException {
setSex("变性人");
}
public static void setSex(String sex)throws SexException{ // 舍命有可能有异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new SexException("性别既不是男又不是女");
}
}
}