你正在触碰多个问题:1)堆栈跟踪永远不应对最终用户可见(出于用户体验和安全目的)

是的,应该可以访问它来诊断最终用户的问题,但是,最终用户不应该看到它们有两个原因:它们非常模糊和不可读,应用程序看起来非常不友好,

向最终用户显示堆栈跟踪可能会带来潜在的安全风险,纠正我,如果我错了,PHP实际上在堆栈跟踪中打印函数参数 - 很棒,但是,非常危险 - 如果你在连接数据库时遇到异常,你有什么不会显示在堆栈跟踪中?2)生成堆栈跟踪是一个相对昂贵的过程(尽管大多数情况下都不可能出现问题),

在创建/抛出异常时产生堆栈跟踪,打印它不那么昂贵,实际上,你可以在定制异常中重写Throwable#fillInStackTrace(),使得抛出异常几乎与简单的GOTO语句一样便宜。3)许多日志记录框架将为您打印堆栈跟踪(我们不能轻易地更改它),

非常好的问题,这里的主要问题是: 如果框架为您记录异常,则不执行任何操作(但请确保这样),如果您想自己记录异常,请使用Logback或Log4J之类的日志框架,而不要将它们放在原始控制台上,因为它很难控制 它。

使用日志框架,可以轻松地将堆栈跟踪重定向到文件,控制台,甚至将它们发送到指定的E-mail地址,使用硬编码printStackTrace(),你必须使用sysout 。4)打印堆栈跟踪不构成错误处理,它应该与其他信息日志记录和异常处理相结合。

再次:正确地记录SQLException,并显示好的(使用完整的堆栈跟踪,使用日志框架): "抱歉,我们目前无法处理你的请求"消息,你真的认为用户对原因感兴趣? 你是否看到StackOverflow错误屏幕? 很幽默但不透露任何细节,

但是,他会立即给你打电话,你需要能够诊断出问题。因此,你需要两个:正确的异常日志记录和用户友好消息。

总是记录异常(最好使用日志框架 ),但是,不要将它们公开给最终用户,在GUI中仔细考虑错误消息,只在开发模式中显示堆栈跟踪。

java printstacktrace_为什么异常. printStackTrace() 被认为是不好的实践?_java_酷徒编程知识库...相关推荐

  1. java 一年 周数_在java,如何找到一年的总周数?_java_酷徒编程知识库

    我得到错误的答案,2020有53周,但是这段代码给出52周,请给我一个建议,package com.hib.mapping; import java.time.LocalDate; import ja ...

  2. return true Java方法_java - 如何检查方法是否返回true或false?_java_酷徒编程知识库...

    在Java中,if语句检查它操作数是true还是false,操作数只能是booleanboolean b = true; if (b) { System.out.println("b was ...

  3. java selenium 日志_java - 支持selenium日志_java_酷徒编程知识库

    在自動測試中,Chrome創建了大量日誌,System.setProperty("webdriver.chrome.silentOutput","true"); ...

  4. java如何恢复视图_Java - 如何用reformation+Moshi创建回收站视图_java_酷徒编程知识库...

    在OrderHistoryActivity Activity中,在XML中使用RecyclerView并在OrderHistoryActivity.java中创建对象. 创建item.xml文件 注: ...

  5. java怎么读取pem文件格式_如何读取. pem 文件获得私钥和公钥_java_酷徒编程知识库...

    尝试这个类.package groovy; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExc ...

  6. 深入探讨Java中的异常与错误处理

    Java中的异常处理机制已经比较成熟,我们的Java程序到处充满了异常的可能,如果对这些异常不做预先的处理,那么将来程序崩溃就无从调试,很难找到异常所在的位置.本文将探讨一下Java中异常与错误的处理 ...

  7. java简单的异常_Java的简单理解(8)-异常(Exception)

    Java 异常处理 异常处理机制是Java语言中一个独特之处,它为开发稳定的软件系统提供了有力的支持.它主要使用捕获异常和声明抛弃异常两种方法来处理程序中可能出现异常的语句块,其中捕获异常的方法是一种 ...

  8. Java基础笔记-异常

    Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的 ...

  9. Java中的异常 Exception

    Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...

最新文章

  1. 大公司病(太现实了!)
  2. 使用免费的云服务 AWS EC2
  3. colab从CPU切换到GPU以及配置查看
  4. python linux编程与window编程_Python3如何在Windows和Linux上打包
  5. 【Android】如何查看android cpu是32位还是64位
  6. BZOJ 2768 [JLOI2010]冠军调查
  7. JUnit5 @Tag注解示例
  8. [原创] Jenkins slave agent 分布式构建
  9. mysql 中float存入int数据显示失真问题
  10. pytorch: 将一序列操作串联
  11. 架构师之路(2)---详解面向过程
  12. OpenGL超级宝典 渲染管线(二)
  13. 使用webpack搭建vue项目;webpack+vue
  14. 2020幻影围棋 第三天围棋规则模块(一)
  15. 软件测试工程师薪酬水平,软件测试工程师工资怎么样?高吗?
  16. 全面接入:ChatGPT杀进10个商业应用,让AI替你打工
  17. 华硕服务器 u盘安装系统,怎样用U盘给华硕电脑装系统3种教程
  18. Wordpress 修改 mysql 插件_WordPress批量查找替换修改文章内容的插件和代码
  19. Couldnt check the working tree for unmerged files because of an error. bad signature index file cor
  20. Java 递归查询部门树形结构数据

热门文章

  1. 使用cocoapods
  2. Hyperspace Travel
  3. 8.2.2继承 第8章 面向对象编程简介
  4. chrome获取xpath元素-f12工具
  5. tcp3次握手,https加密,ca认证
  6. .net core ef动态orderby
  7. jenkins定时任务
  8. C#异步编程(一):异步基础
  9. UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)
  10. andoid 打包短信发送到gmail邮箱