在Android Exceptions中使用printStackTrace()是个坏主意吗?
} catch (Exception e) {
e.printStackTrace();
}
是的,这是一个坏主意。相反,您应该使用专门为这些目的设计的Android内置日志类:http
:
//developer.android.com/reference/android/util/Log.html
它为您提供了记录调试消息,警告,错误等的选项。
使用以下命令记录错误:
Log.e(TAG, "message", e)
该消息可以解释抛出异常时正在尝试的操作
或者只是Log.e(TAG, e)
如果您不想提供任何上下文消息
然后,您可以在运行代码时单击底部的日志控制台,并使用TAG或日志消息类型作为过滤器轻松地对其进行搜索
问题内容: 我已经多次听到您不应该执行或出于性能方面的考虑,但是无法深入了解有关它的更多信息。 我可以想象数据库随后将 所有 列都用于操作,这可能会导致性能下降,但是我不确定。有人有关于该主题的更多信息吗? 问题答案: 1.关于count(*)vs. count(其他) SQL是声明性的,您可以指定所需的 内容 。这不同于指定 如何 获得所需的东西。这意味着数据库引擎可以自由地以其认为最有效的方式
问题内容: 我公司在另一个国家/地区拥有一个开发团队,他们坚持使用Vue在我们现有平台的基础上构建新模块。我们的主要平台是基于React与Redux构建的单页面应用程序。 仅基于团队技能的混合框架是一个好主意吗?这两个框架是否可行? 问题答案: 如果主要原因是“我已经知道Vue”,那么我会拒绝。 如果他们已经知道Vue,应该很容易学会反应。 我认为这两个框架可以协同工作,您可以在使用Vue构建的R
问题内容: eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? 问题答案: 错误使用 eval会 打开代码以进行注入攻击 调试 可能会更具挑战性(没有行号等) 评估的代码执行速度较慢(没有机会编译/缓存评估的代码) 编辑:正如@Jeff Walden在评论中指出的那样,今天#3的真实性要低于2008年。但是,尽管可能会缓存一些已编译脚本,但这只会限于未经修改就重复的脚本。更有可能的
函数 unexpected 调用 set_unexpected 函数指定的函数。如果没有用 set_unexpected 函数指定函数,则默认调用 terminate。 函数 terminate 可以显式调用,在无法捕获抛出的异常时、在异常处理期间打乱堆栈时、作为调用unexpected的默认操作时或在异常导致堆栈解退时析构函数抛出异常的情况下都会调用 terminate。 函数set_termi
问题内容: 根据我的理解,不可能完全防止事务陷入僵局。 我想拥有从应用程序代码的角度来看永不失败的事务。因此,我已经看到了用于Microsoft SQL的这种模式,我想知道这是否是个好主意? 问题答案: 客户端代码中应包含可恢复错误的重试逻辑。 对于死锁,MSDN声明在那做 如果重试SQL,则最终可能会遇到CommandTimeout。