在写方法的时候我们很多时候会碰到这种情况:
情况一 的时候我们要返回对象,
情况二的时候我们想返回字符串甚至另一个对象了,
但是返回值类型设置成对象了,这时候我们怎么处理呢;
那么现在我们就可以用到异常了
public User getUser(String id) throws Exception{
User user = userService.getById(id);
if(user == null){
throw new Exception("震惊!蝙蝠侠竟然不存在!!!");
}else {
return user;
}
}
public void test(){
try{
User user = getUser("蝙蝠侠");
System.out.println(user.toString());
}catch (Exception e){
System.out.println(e.getMessage());
}
}
上述代码中返回值为 User, 但是 如果user不存在的话需要返回字符串,这种情况 就要把字符串通过异常抛出去, 然后在调用方法的时候进行异常的处理, 从而获取所需要的数据;
抛异常不仅限于字符串还有很多类型的都可以,我想要用异常抛一个对象回去的话,我可以用Gson把对象转换成json,然后当字符串传给Exception, 抛出去,回头直接获取,再转回对象就行了;
当然用Exception只是为了简单,在正常开发中有什么特殊需求的话,需要自己自定义异常类进行处理相关数据,
异常里边可以传一个参数也可以两个也可以三个;
有些有特殊需求的异常也用到collection;
/**
*
*/
package chengzi;
/**
* @author chengzi
*
*/
public class Test {
public static void main(String[] args) {
Test test = new Test();
try{
String user = test.getUser("蝙蝠侠");//
System.out.println(user.toString());
}catch (Exception e){
System.out.println(e.getMessage());
}
}
public String getUser(String id) throws Exception{
String user = null;
if(!id.equals("蝙蝠侠")){
user = "震惊!蝙蝠侠来了!!!";
}
if(user == null){
throw new Exception("震惊!蝙蝠侠竟然不存在!!!");
}else {
return user;
}
}
}