• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.net.impl;
6 
7 import org.chromium.net.QuicException;
8 
9 /** Implements {@link QuicException}. */
10 public class QuicExceptionImpl extends QuicException {
11     private final int mQuicDetailedErrorCode;
12     private final NetworkExceptionImpl mNetworkException;
13 
14     /**
15      * Constructs an exception with a specific error.
16      *
17      * @param message explanation of failure.
18      * @param netErrorCode Error code from
19      * <a href=https://chromium.googlesource.com/chromium/src/+/main/net/base/net_error_list.h>
20      * this list</a>.
21      * @param quicDetailedErrorCode Detailed <a href="https://www.chromium.org/quic">QUIC</a> error
22      * code from <a
23      * href="https://cs.chromium.org/search/?q=symbol:%5CbQuicErrorCode%5Cb">
24      * QuicErrorCode</a>.
25      */
QuicExceptionImpl( String message, int errorCode, int netErrorCode, int quicDetailedErrorCode)26     public QuicExceptionImpl(
27             String message, int errorCode, int netErrorCode, int quicDetailedErrorCode) {
28         super(message, null);
29         mNetworkException = new NetworkExceptionImpl(message, errorCode, netErrorCode);
30         mQuicDetailedErrorCode = quicDetailedErrorCode;
31     }
32 
33     @Override
getMessage()34     public String getMessage() {
35         StringBuilder b = new StringBuilder(mNetworkException.getMessage());
36         b.append(", QuicDetailedErrorCode=").append(mQuicDetailedErrorCode);
37         return b.toString();
38     }
39 
40     @Override
getErrorCode()41     public int getErrorCode() {
42         return mNetworkException.getErrorCode();
43     }
44 
45     @Override
getCronetInternalErrorCode()46     public int getCronetInternalErrorCode() {
47         return mNetworkException.getCronetInternalErrorCode();
48     }
49 
50     @Override
immediatelyRetryable()51     public boolean immediatelyRetryable() {
52         return mNetworkException.immediatelyRetryable();
53     }
54 
55     @Override
getQuicDetailedErrorCode()56     public int getQuicDetailedErrorCode() {
57         return mQuicDetailedErrorCode;
58     }
59 }
60