首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何优雅地查看 JS 错误堆栈?

假设捕获了一个异常,上报的堆栈是这个: TypeError: Cannot read property 'module' of undefined at Object.exec (https:/...我们发布到 CDN 的脚本文件,普遍是经过 UglifyJS 压缩的,所以堆栈可读性相当的差。假如有下面的一个堆栈查看工具,又如何? [堆栈查看工具] 眼尖的同学,一眼就能找到问题。...[堆栈工具实现原理] 一步步来说的话: 拿到原始堆栈字符串,使用 error-stack-parser 解析为堆栈帧,每个堆栈帧包含三个最重要的字段: url - 源码的 URL 地址 line - 堆栈位置行号...堆栈帧中的 line 和 col 通过 sourcemap 反查,得到美化后对应的 prettyline 和 prettycol 将 prettysource、prettyline、prettycol...[xje2uz4x2m.jpg] 同时欢迎在评论区和我讨论。 订阅我们的专栏「前端之心」,每周都会有干货。

9.4K40

如何正确地打印异常堆栈信息

前言 最近老大让我修改项目里所有和log有关的代码,之前我也用过log4j、slf4j或者Logback等日志框架/接口,一直以为打印异常信息就是简单地一句log.info()或者log.error()...如何正确地打印异常的堆栈信息? 一般在catch到异常的时候,不要使用e.printStackTrace()来打印异常信息。...对于异常,一般使用log.error()来打印堆栈信息。...log.error("ERROR", "Error found: " + e.getMessage()); log.error("ERROR", "Error found: " + e); } 在log...对于第二个log语句,只是打印出了异常的具体信息,既没有异常类名,也没有堆栈信息。 对于第三个log语句,打印出了异常的类名和具体信息,但是没有打印出来堆栈信息。

1.6K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简单地建立Ember CLI Addons

    Ember CLI最令我兴奋的事情之一就是可以轻松地在Ember应用程序之间共享可重用代码。最近,addons出现了。...(在0.0.35),我有一个组件在Ember CLI的app中看起来能够完美地适应。它是集成/单元测试,共享代码的方法是复制和粘贴相关部分(这不理想)。...所以,我们决定建立一个 app-addon目录。...以上简单地整合了app和app-addon,然后再将其应用于EmberApp。 我想强调的是这些约定仍然还在不断的变化中。另一个选择是整合 app和 tests/dummy目录。...正在推动addon历史的人们正在努力使这个东西变得容易和易于人使用,同时也建立了适用于广泛人群的约定。因此,我非常感谢他们。衷心感谢! 希望我没有过分重复这个话题。实际上设置起来很简单。

    1K20

    不应面向对象地针对业务行为建立模型!

    在过去的几年中,我看到许多项目将几乎任何类型的业务需求都喜欢建立与需求原因无关的技术对象模型(后面可能简称对象模型)。在很多情况下,针对技术对象建立业务需求模型是相当不错的,我总体上对此表示赞同。...在我们的案例中,上述对象所拥有的数据已经足够用来管理订单。但是,在一个要求灵活的软件项目中,业务需求往往会在开发周期中非常迅速地发生变化和发展。...我们的Web开发人员可以轻松地通过检查新标志位是否已经订购 (isOrdered) 来确定颜色选择器在GUI(Graphical User Interface, 图形用户界面)中是否仍然可用。...我们的网站开发人员可以简单地向业务流程引擎询问流程状态,以此确定是否可以使用颜色选择器。...以一个对象模型为基础建立多种业务模型 让我们进一步增加复杂性。有一天,我们的营销团队提出了另一个新想法:VIP客户! VIP客户最晚可以在订购的30天后内改变汽车的颜色。

    1.3K20

    Excel图表学习52: 清楚地定位散点图中的数据点

    其实,使用一些小技巧,我们能够很容易地定位散点图中特定的数据点,如下图1所示。 ? 图1 示例用于绘制散点图的数据如下图2所示。 ?...在“选择数据源”中单击“添加”按钮。在“编辑数据系列”对话框中,设置X轴系列值为单元格区域C3:C10,Y轴系列值区域为单元格区域D3:D10,如下图4所示。 ?...在“数据验证”对话框的“设置”选项卡中,验证条件允许列表框中选择“序列”,来源选择工作表单元格区域B3:B10,如下图7所示。 ? 图7 设置数据验证后的单元格F2如下图8所示。 ?...图8 3.在单元格B13中输入公式: =F3 在单元格C13中输入公式: =VLOOKUP(B13,$B$3:$D$10,2,0) 在单元格D13中输入公式: =VLOOKUP(B13,$B$3:$D$10,3,0...图11 可以看到,在图表中增加了一下不同颜色的数据点。 2.选取刚添加的数据点,单击右键,在快捷菜单中选取“设置数据系列格式”命令,如下图12所示。 ?

    10.7K10

    Win10: 在截图中添加红框

    文章背景: 在工作中,很多时候需要用到Win10原生的截图工具,然后在截图中添加红框进行强调。...对于Win10系统,可以通过按Windows 徽标键‌+ Shift+ S,快速调出截图工具,但无法在截图中添加红框,需要借助画图工具进行实现。...(2)打开画图工具,可以通过在开始菜单中搜索画图来打开它。 (3)在画图工具中,按Ctrl + V,将刚才的截图粘贴到画布内。 (4)在工具栏中选择矩形框,并选择好合适的线条和颜色。...通过鼠标在截图的指定位置拖出一个红框。此时,您就在截图上加上了红色框。 (5)最后,通过按Windows 徽标键‌+ Shift+ S,选择需要的内容进行重新截图即可。

    13.3K30

    在 SwiftUI 视图中打开 URL 的若干方法

    访问我的博客 www.fatbobman.com[1] 可以获得更好的阅读体验 本文将介绍在 SwiftUI 视图中打开 URL 的若干种方式,其他的内容还包括如何自动识别文本中的内容并为其转换为可点击链接...image-20220520182722773 SwiftUI 1.0( iOS 13、Catalina ) 在视图中,开发者通常需要处理两种不同的打开 URL 的情况: 点击一个按钮( 或类似的部件...Button 中,我们可以通过在闭包中添加逻辑代码,自定义开启 URL 之前与之后的行为。..."Success" : "Failure") } 结合上面的介绍,下面的代码将实现:在点击链接后,用户可以选择是打开链接还是将链接复制在粘贴板上: struct ContentView: View {...SwiftUI 视图中打开 URL 的几种方法,不过读者应该也能从中感受到 SwiftUI 三年来的不断进步,相信不久后的 WWDC 2022 会为开发者带来更多的惊喜。

    7.8K31

    论道 | 新人游戏运营该如何建立信心,更好地成长?

    一些新人游戏运营也很难建立起信心,不知道该如何为自己划定成长路线。 而另一方面,游戏运营的工作又和游戏的长期发展干系重大。...如果运营同学能结合自己的专业能力,把玩家的真实意见反馈给研发,就能有效驱动产品调优,改善玩家体验,建立良好的用户口碑。 Q 你们通常怎么收集用户反馈?...第二,我们会建立比较多的核心玩家群,日常在群里进行沟通,了解他们的建议。...Q 说到用户反馈,之前一些玩家总会抱怨一些游戏的运营或客服,在回复评论时直接照搬模板,看起来「很没人味」,您怎么看待这个问题? Spon:本质上这还是游戏公司都希望能更高效地解决用户的问题。...一些外团成员还会产出高质量的游戏内容,在各个平台上传播。 ? Q 你们会重点关注哪些外部玩家社区? Spon:很多社区都有在关注,可能微博、贴吧、B站以及短视频平台会看的更多一些。

    93010

    在DDD中建立领域模型

    在本文中我们将继续探讨领域模型。 用领域模型表达领域概念 在实际项目中,模型设计者往往过早陷入具体构造块类型的识别,比如实体、聚合、领域服务,而忽略了领域模型表达领域概念的目的。...建立模型 第一步是根据需求分析模型。 我们可以找到以下概念:活动、参与资格、权益。其中参与资格是扩展点。...由于领域服务没有状态,所以可以在应用启动时就创建出来,也可以在使用时才创建。 经过分析,我们的领域模型都有了类型。...其他有状态的对象都是临时对象:在一个操作中被创建出来,操作结束后就不会再被使用。模型中的用户,在一次操作中从其他服务获取,使用后即被丢弃。...如何使用领域模型 领域模型已经建立完毕,我们来看如何使用领域模型以满足用例。 运营人员创建活动基本信息及其关联的参与资格和权益。

    90210

    color pathway 使用指南 : 在通路图中标记基因

    对于通路分析结果的可视化而言,最常用的展现方式就是在通路中高亮显示富集到的基因。kegg 提供了在Color Pathway 在线服务,可以方便的完成这一任务。...这个工具使用比较简单,分为4步: 在Select KEGG pathway map 输入框中输入想要标记的pathway ID ; 在Enter data中输入需要标记的基因和对应的信息,或者通过选择文件按钮...,上传对应的文件; 在Option中选择和上一步输入的文件格式相匹配的操作; 点击Exec按钮,提交任务; 从上面的截图可以看出,这个工具提供了3种标记方式 ,下面我们以hsa05200这条通路为例,看下实际用法...总结 通过color pathway, 我们可以有多种方式在通路图中标记我们的基因,可以直接指定颜色,也可以将表达量等数值信息映射到图中。 对于每种输入格式,必须要有#开头的注释行。

    1.8K10

    在AWS中建立网络分割案例

    网络分割的最佳实案例需要以下功能: 1、入侵检测和预防系统(ids和ips),基于已知的cve、行为模式和行业智能来检测和阻止恶意流量 2、防病毒和恶意软件检测,以检测和阻止流量中的病毒和恶意软件行为 3、沙箱,在“...如何在aws中实现网络分割 假设在aws上运行的示例应用程序有四个组件:s3内容、lambda、在ec2实例上运行的自定义数据处理组件和几个rds实例。...在现实环境中,这些组件将使用许多aws配置和策略。 在程序开发人员放松安全控制情况下,下图显示了此非安全流和网络区域覆盖: ?...所有这些处理都是在aws中的公共访问服务中完成的。下一步交由在vpc处理。 来自lambda的流量通过internet网关发送,然后路由到网络负载平衡器。负载平衡器重定向到几个虚拟防火墙之一。...vpc完成的所有处理都被捕获在vpc流日志中,并存储到SIEM系统,SIEM系统很可能托管在本地或其他地方。 考虑和要求 这种流量路由显然比传统系统复杂得多,复杂性增加了错误和配置出错的机会。

    1.6K30

    在Ubuntu 16.04上安装Odoo 11堆栈

    对于简单安装,可以在单个Linode上安装Odoo及其依赖项(有关详细信息,请参阅我们在Ubuntu上安装Odoo 10的指南)。但是,此单服务器设置不适合生产部署。...odoo-server.service \ && sudo chown root: /lib/systemd/system/odoo-server.service 由于odoo用户将运行该应用程序,因此相应地更改其所有权...root用户无法访问它: sudo chown odoo: /etc/odoo-server.conf \ && sudo chmod 640 /etc/odoo-server.conf 测试你的Odoo堆栈...检查Odoo日志以验证Odoo服务器是否正在运行: sudo cat /var/log/odoo/odoo-server.log 备份Odoo数据库 如果Odoo堆栈的所有组件都在单个服务器上运行...: sudo service odoo-server restart -u all -d 更新您的系统 如果所有测试都通过,您可以安全地更新安装

    8.9K30

    如何优雅地在Stack Overflow提问?

    如何优雅地提问? 在你准备要提出技术问题前,请先做到以下事情: 尝试在你准备提问的论坛的旧文章中搜索答案。 尝试上网搜索以找到答案。 尝试阅读手册以找到答案。...在了解了上面的内容后,接下来,我们来看一下提问的三要素: 环境描述:操作系统,JDK 版本,软件/工具版本等可能和问题相关的信息 问题描述:描述要解决的问题和思路。...谦虚表达自己在某方面的经验 I am searching for a long time on net. But no use....提供更详细 当别人回答你的问题后,你对回答的评论: Thank you for your answer sincerely 感谢回答 总结 提问问题是程序员的基本技能,如何能够更好地去提问需要我们在一次次的提问中成长...参考 How To Ask Questions The Smart Way 如何优雅地使用 Stack Overflow?

    80310
    领券