# java基础复习

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/21826.html | 发布：2023-07-05 | 更新：2023-07-05 | 分类：建站教程

### 4、throw与throws

 

### shrow：手动抛出异常

 

语法：throw 异常对象

 

throw new Exception("异常信息...........");  
throw new MyException("自定义异常.........")

 

throws：声明异常

 

在定义方法时，同时给方法声明一个异常

 

public void insert(int i, Object data) throws Exception{  
 if(i < 0){  
 throw new Exception("下标不合法");  
 }  
}

 

通过throws声明异常后，若调用该方法，则需要处理该异常

 

public void insert(int i, Object data) throws Exception{  
 if(i < 0){  
 throw new Exception("下标不合法");  
 }  
}

 

public void add(int i, Object data){  
 // 需要处理异常  
 try{  
 insert(i, data);  
 } catch(Exception e){  
   
 }  
}

 

所有声明式异常都是检查异常，在编码时，就需要处理，否则语法出错

 

throw和throws可以同时出现，也可以单独出现，当throw单独出现时，可将throw语句放入try语句中直接进行异常处理；当throws单独出现时，可直接加在方法后面  
5、自定义异常

 

自己写一个异常类型，处理特定异常问题

 

自定义异常需要继承Throwsable类或者Exception类（通常继承此类）

 

public class UserException extends Exception{  
 public UserException(String messgae) {  
 super(messgae);  
 }  
}

 

做完自己的异常类后，在需要异常的方法中就可以通过throw语句来抛出该异常，抛出的异常可以直接throws掉让调用方处理或者直接`try...catch`掉

 

public static void main(String[] args) throws Exception{  
 int i = 5;  
 if (i > 0){  
 throw new MyException("错误");  
 }  
}

 

// 或者  
public static void main(String[] args){  
 int i = 5;  
 if (i > 0){  
 try {  
 throw new MyException("错误");  
 } catch (MyException e) {  
 e.printStackTrace();  
 }  
 }  
}

 

throw 与 throws区别

 

throw为手动抛出异常，指运行到该语句就抛出异常，不往下执行，或者可以通过try...catch处理该异常，例如打印日志和异常堆栈信息

 

throws为声明式异常，在定义时，在方法的后面通过throws 指定异常类型，此时，调用该方法必须去处理该异常

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
