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