方法通过异常与返回值达到双类型返回值效果

在写方法的时候我们很多时候会碰到这种情况:

       情况一 的时候我们要返回对象,

       情况二的时候我们想返回字符串甚至另一个对象了,

     

       但是返回值类型设置成对象了,这时候我们怎么处理呢;


       那么现在我们就可以用到异常了

    

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;
        }
    }
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值