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