异常处理
更新时间:2024-09-25
BCI异常提示有如下两种方式:
| 异常方法 | 说明 | 
|---|---|
| BceClientException | 客户端异常 | 
| BceServerException | 服务器异常 | 
用户可以使用try获取某个事件所产生的异常,例如:
                Java
                
            
            1try {
2    bciClient.createInstance(request);
3 } catch (BceServiceException bce){
4    System.out.println(bce.getMessage());
5 } catch ( BceClientException bce){
6    System.out.println(bce.getMessage());
7 }
            客户端异常
客户端异常表示客户端尝试向BCI发送请求以及数据传输时遇到的异常。 例如,当发送请求时网络连接不可用时,则会抛出 ClientException;当上传文件时发生IO异常时,也会抛出ClientException。
服务端异常
当BCI服务端出现异常时,BCI服务端会返回给用户相应的错误信息,以便定位问题。常见服务端异常可参见BCI错误码
SDK日志
Java SDK发布版本中增加了logback作为slf4j的实现,如果用户没有自己的实现可以直接用,如果工程中有其他的实现,如log4j,则可以替换。
默认日志
如果用户使用默认的logback,则需要配置logback.xml到classpath中。如果没有这个配置文件,日志级别默认为DEBUG。
                PHP
                
            
            1<configuration>
2    <property name="LOG_HOME" value="./log/"/>
3    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
4        <!-- encoders are assigned the type
5             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
6        <encoder>
7            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
8        </encoder>
9    </appender>
10
11    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
12        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
13            <FileNamePattern>${LOG_HOME}/BciUnitTest.%d{yyyy-MM-dd}.log</FileNamePattern>
14            <MaxHistory>30</MaxHistory>
15        </rollingPolicy>
16        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
17            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
18        </encoder>
19        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
20            <MaxFileSize>10MB</MaxFileSize>
21        </triggeringPolicy>
22    </appender>
23
24    <root level="info">
25        <appender-ref ref="STDOUT"/>
26        <appender-ref ref="FILE"/>
27    </root>
28</configuration>
            自有日志模块
若用户使用自己的日志实现模块,例如项目依赖于Maven,则可以类似下面的配置到pom.xml中来去除logback。
                XML
                
            
            1<?xml version="1.0" encoding="utf-8"?>
2
3<dependency>      
4  <groupId>com.baidubce</groupId>      
5  <artifactId>bce-java-sdk</artifactId>      
6  <version>${bce.sdk.version}</version>      
7  <exclusions>        
8    <exclusion>          
9      <groupId>ch.qos.logback</groupId>          
10      <artifactId>logback-classic</artifactId>        
11    </exclusion>        
12    <exclusion>          
13      <groupId>ch.qos.logback</groupId>          
14      <artifactId>logback-core</artifactId>        
15    </exclusion>        
16    <exclusion>          
17      <groupId>org.slf4j</groupId>          
18      <artifactId>jcl-over-slf4j</artifactId>        
19    </exclusion>      
20  </exclusions>    
21</dependency>
            