• (五)web服务中的异常处理


    一、服务端发布服务

    package com.webservice;
    
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    
    @WebService
    public interface IExceptionService {
    
        @WebResult(name = "addResult")
        public int add(@WebParam(name = "x")
        int x, @WebParam(name = "y")
        int y) throws Exception;
    
        @WebResult(name = "subtractResult")
        public int subtract(@WebParam(name = "x")
        int x, @WebParam(name = "y")
        int y) throws RuntimeException;
    
        @WebResult(name = "divideResult")
        public int divide(@WebParam(name = "x")
        int x, @WebParam(name = "y")
        int y) throws DivideException;
    }
    package com.webservice;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.jws.WebService;
    
    @WebService(endpointInterface = "com.webservice.IExceptionService")
    public class ExceptionImpl implements IExceptionService {
    
        public int add(int x, int y) throws Exception {
            if (x == 0 || y == 0) {
                throw new Exception("add中Exception====X或者Y不能为0");
            } else {
                return x + y;
            }
        }
    
        public int subtract(int x, int y) throws RuntimeException {
            if (x == 0 || y == 0) {
                throw new RuntimeException("subtract中RunTimeException===X或者Y不能为0");
            } else {
                return x + y;
            }
        }
    
        public int divide(int x, int y) throws DivideException {
            if (x == 0 || y == 0) {
                throw new DivideException("divide中DivideException===X或者Y不能为0");
            } else {
                return x + y;
            }
        }
    
    }
    •   自定义异常
    package com.webservice;
    
    public class DivideException extends Exception {
    
        public DivideException() {
            super();
        }
    
        public DivideException(String arg0, Throwable arg1, boolean arg2,
                boolean arg3) {
            super(arg0, arg1, arg2, arg3);
        }
    
        public DivideException(String arg0, Throwable arg1) {
            super(arg0, arg1);
        }
    
        public DivideException(String arg0) {
            super(arg0);
        }
    
        public DivideException(Throwable arg0) {
            super(arg0);
        }
    
    }
    package com.publish;
    
    import javax.xml.ws.Endpoint;
    
    import com.webservice.BeanImpl;
    import com.webservice.DateImpl;
    import com.webservice.ExceptionImpl;
    import com.webservice.ListImpl;
    import com.webservice.MapImpl;
    import com.webservice.StrImpl;
    
    public class TestPublish {
        public static void main(String[] args) {
     
    
            Endpoint.publish("http://localhost:9090/ExceptionService",
                    new ExceptionImpl());
            System.out.println("发布成功...");
        }
    }

    二、客户端

    package com.exception;
    
    public class TestMain {
        public static void main(String[] args) {
            //TestMain.add();
    
            // TestMain.subtract();
            
            TestMain.divide();
        }
    
    
        private static void add() {
            // 服务端没有异常
            // 客户端:com.exception.Exception_Exception
            IExceptionService exceptionService = new ExceptionImplService()
                    .getExceptionImplPort();
    
            try {
                exceptionService.add(1, 0);
            } catch (Exception_Exception e) {
                Exception exception = e.getFaultInfo();
    
                String server_msg = exception.getMessage();
    
                System.out.println(server_msg);
    
                e.printStackTrace();
    
            }
    
        }
    
        private static void subtract() {
            // 服务端的异常:java.lang.RuntimeException
            // 客户端的异常:javax.xml.ws.soap.SOAPFaultException
            IExceptionService exceptionService = new ExceptionImplService()
                    .getExceptionImplPort();
    
            exceptionService.subtract(3, 0);
        }
        
        private static void divide() {
            IExceptionService exceptionService = new ExceptionImplService()
            .getExceptionImplPort();
            
            try {
                exceptionService.divide(1, 0);
            } catch (DivideException_Exception e) {
                System.out.println(e.getFaultInfo().getMessage());
                e.printStackTrace();
            }
            
        }
    
        
    }
  • 相关阅读:
    448-查找数组中消失的所有数字
    977 -排序数组的正方形
    爬虫小总结
    增量式爬虫
    分布式爬虫
    CrawlSpider:类,Spider的一个子类
    中间件
    中间件
    scrapy图片数据爬取之ImagesPipeline
    scrapy五大核心组件
  • 原文地址:https://www.cnblogs.com/shyroke/p/7655827.html
Copyright © 2020-2023  润新知