Java之将异常处理-捕获message+堆栈-转换为 JSON

在 Java 7 中,是否可以将 Exception 对象转换为 Json?

例子:

try {       
    //something 
} catch(Exception ex) {      
    Gson gson = new Gson(); 
    System.out.println(gson.toJson(ex)); 
} 
// […] 
} catch (Exception ex) { 
    Gson gson = new Gson(); 
    Map<String, String> exc_map = new HashMap<String, String>(); 
    exc_map.put("message", ex.toString()); 
    exc_map.put("stacktrace", getStackTrace(ex)); 
    System.out.println(gson.toJson(exc_map)); 
} 
public static String getStackTrace(final Throwable throwable) { 
     final StringWriter sw = new StringWriter(); 
     final PrintWriter pw = new PrintWriter(sw, true); 
     throwable.printStackTrace(pw); 
     return sw.getBuffer().toString(); 
} 

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java异常处理是编程中很重要的一部分,其中try-catch语句是常用的异常捕获机制。当代码块中可能会抛出异常时,可以使用try-catch来捕获并处理异常,避免程序崩溃。 在try块中,我们编写可能会出现异常的代码。当某个异常被抛出时,程序会立即跳到对应的catch块中,执行catch块中的代码。catch块中的异常参数会接收到被抛出的异常对象,我们可以通过该参数对异常进行处理。 在catch块中,我们可以根据不同的异常类型采取不同的处理方式。比如,可以输出异常信息、记录日志、进行重试操作等。如果catch块成功处理了异常,程序会继续执行try-catch之后的代码;如果catch块没有成功处理异常,异常将继续向上抛出。 另外,可以在try-catch语句中添加多个catch块,以便对不同类型的异常进行处理。catch块的顺序很重要,应该根据具体的异常类型进行有针对性的处理。通常,将子类异常放在前面的catch块,将父类异常放在后面的catch块。 最后,如果在try块中没有出现异常,catch块中的代码将不会执行。但是,可以使用finally块来确保一定会执行的代码,比如资源的释放操作。 总之,通过使用try-catch语句,我们可以有效地捕获并处理异常,增加程序的健壮性和稳定性。对于很多场景来说,我们不希望因为一个小的异常导致整个程序崩溃,因此合理地使用try-catch是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值