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

【黑马程序员pinik名师讲html】HTML容易忘记?有不慌

这篇HTML博客是参考B站黑马程序员–pink老师做个人笔记,供平时复习使用,现分享给大家,喜欢的话请多多点赞收藏哦~~ 文章目录 P3.网页基本概念 P4.常用浏览器 P5.Web标准...title: 提示, 鼠标放到显示出来图片时候,显示文字 还可以设置图片宽和高还有边框 ps:宽和高一般都是只写一个,这样另一个会等比例缩放,两个都写容易失真 <img...,默认为2 cellpadding:单元格和内容之间空隙,默认为1 4.表格结构标签 thead和tbody在原来表格上添加,在页面上没有效果,但是能使得结构清晰 5.合并单元格...html中表单三部分: 表单域,表单控件,提示信息 2.表单域 表单域是一个包含表单元素区域 在html中,form标签用于定义表单域,以实现用户信息收集 form会把范围里面的东西提交给服务器...value一般设置为“注册” ps:其实password属性值,也是可以设置value,并且展示,但这没必要,因为是暗文,可以但是没必要 这里把form表单域里action属性添加上来了,然后结合最后添加提交按钮

1.3K20

C++编程经验(3):别让异常逃离虚构函数!!!

但是呢,如果在析构过程中,有个异常抛出,那后面还没被析构Widget怎么办? 好,继续。再被抛出异常,这也不是什么奇怪事情,有一就有二嘛。...在两个异常同时存在情况下,程序要么强制结束,要么就是导致不明确行为。那就很尴尬了。...this->closed){ try(db.close();) catch(···){ //Python异常抛出可六了,C++倒是没有体验过 日志记录 } }| } 一般而言...,将异常吞掉是一个坏主意,因为压制了某些动作失败重要信息。...但是“不明确行为”也不是什么好事儿。 所以,就做一个接口,给客户端自行去调用关闭函数吧。 记住,析构函数一定不要吐出异常!!! 实在没办法,那咱也要像个硬汉,吞下去!!!

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

舒服了,学习了,踩到一个 Lombok 坑!

如果 reqDto 是 null 的话,那么日志打印时候就会先抛出空指针异常了。 然后又开始怀疑是部署代码版本和我们看版本不一致,可能并不是这一行报错。...但是,这个老哥说当 new MyClass 对象时候,这个字段变成了 null: 他就觉得很奇怪,于是抛出了这个问题。 然后另外有人立马补充了一下。...看到这个运行结果第一个感觉是奇怪,第二个感觉是这肯定是 lombok BUG。 问题抛出来之后,紧接着就有老哥来讨论了: 这个哥们直接喊话官方:造孽啊,这么大个 BUG 还有没有人管啦?...如果有人确实写了一些字段初始化比较复杂程序,这可能会导致一些问题,但比起该初始化却没有初始化带来问题要少得多。 在当前这个情况下,当突然抛出一个空指针异常时候,真的蒙蔽啊。...其实了解也不算深入,只是大概知道工作原理是什么样,对于源码没有深入研究。 但是可以给你分享一下两个需要注意地方和可以去哪里了解这个玩意。 以 Lombok 日志相关注解为例。

21010

@Transactional千万不要这样用!!踩坑了你都可能发现不了!!!

但是这段程序在运行时候,经常出现莫名其妙问题,连夜研究了好久才搞清楚,在这里记录一下, 避免大家入坑。 1. 大家来找茬 在介绍具体问题之前,把问题代码简化了一下,看大家能找到其中问题吗?...但是在实践过程中,发现这个锁好像并没有生效,而且在数据库里面也没有查找对应transaction连接信息。...事务传播行为 事务传播行为也会影响到事务与事务之间关系,一定要搞清楚,否则经常会出现奇怪问题。...a方法抛出异常后,b方法并没有进行回滚,因为Propagation.REQUIRES_NEW会暂停 a方法事务 ) Propagation.NOT_SUPPORTED:以非事务方式运行,如果当前存在事务...因为只“保护”了读取数据不被修改,但是其他数据会被修改。如果其他数据被修改后恰好满足了当前事务过滤条件(where语句),那么就会发生“幻影读”情况。

54820

【笔记】《Effective C++》条款26-55

: 基本承诺: 如果异常抛出, 程序所有事务仍然保持在有效状态下, 不会有类似互斥锁没有释放情况, 但有可能改变部分程序状态, 例如流读取记号改变 强烈保证: 如果异常抛出, 程序状态不改变..., 实现早期错误侦测, 实现按照客户要求生成代码, 还能优化很多算法, 还是有学习意义 8 定制new和delete 49 了解new-handler行为 new由于例如内存不足原因抛出异常前...主要是模板部分比较奇怪, 其使用了模板参数但却没有用到, 这是为了利用模板具现化来为每个不同类具现化出实体互异复件....尽管new本身不会抛出异常, 但是这个null指针可能导致上层抛出异常, 见仁见智吧 50 了解new和delete合理替换时机 重载自己new函数主要是为了给标准new操作加上额外操作, 最常见就是特殊内存分配器...TR1已经过时了, 但是目前标准库更大了, 为了写好C++一定要了解 55 让自己熟悉Boost Boost是一个与C++标准委员会关系深厚社群, 其接纳程序库质量都很高实用, 且很多设计有望进入未来

89030

​JDK8线程池BUG引发思考

,有时候是刚跑起来直接抛出异常,有时候在执行几秒之后才报错,所以这一段代码在不同电脑上呈现效果是不太一样但是可以确定是JDK写法是存在BUG。...,会出现不确定行为,正常情况下未被捕获异常基本会被Jvm捕获最终强制终止线程,并且打印堆栈,但是如果异常在终结方法中则完全报不出错来。...❝清除方法:❞ 安全问题 最后终结方法有严重安全问题,那就是终结方法攻击,如果一个异常在构造方法或序列化等价方法-readObject()和readResolve()方法抛出,虽然构造方法可以正常抛出异常并且提前结束线程生命周期...,但是对于终结方法并不是如此,终结方法可以在静态字段中记录对象引用,防止被垃圾回收,同时一旦被记录异常,那么就可以调用任何原本不应该允许出现方法,所以「从构造器抛出异常虽然足以阻止对象存活,但是对于终结方法来说...,但是在最后通过一个客户端错误使用发现依然会导致各种奇怪现象,这里也说明了finalize这个方法不确定性,同时一旦重写了这个方法就要考量对于程序性能影响,因为调用与否取决于GC实现。

77860

13 年 Bug 调试经验总结

例如,如果信令消息在配置和启动程序完成之前就被过早接收,那么可能就会有很多奇怪行为发生。另一个例子:连接在被放进空闲列表之前就被标记为down。...一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...可视化程序做什么至关重要,特别是当逻辑复杂时候。确保补充足够多(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,被抛出异常不是以为那个。...到此为止错误行为应消失。遵循这些步骤可以确保确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。 其他观察结果 在这13年来一直在跟踪所遇到最棘手bug,很多事情由此而改变。

71950

手把手教你将一个旧大型项目迁移到 Py

它会在合适地方修改代码。经常做完这步后没有进行第一次提交就开始修复代码。这个错误步骤总是让后悔,不止一次地迫使重新开始做整件事情。即使这个阶段出错,最好还是先把提交。...这个分支允许在超级中断状态下可以非常快速地启动应用程序,至少可以运行一些单元测试。 这个分支有很大不同,但我还是找到了把应用在适当场景方法。使用优秀 GitUp 来拆分、组合和提交。...没有人可以在这个分支上工作,因为它被不断地 rebase ,强制推送,滥用,但是确实让项目向前推进了,而不用等待所有的依赖项被更新。强烈推荐使用这种方法!...six.moves six.moves 实现是一个非常奇怪***行为,因此它不像假装普通 Python 模块那样运行。 也不同意他们在 six.moves 中不包含 mock 选择。...在 Python 3 中,这里几乎任何其他行为都会更好: 输出为十六进制 ( 结果明显更不一样 ) ,旧行为 (之前代码运行),或者抛出异常 (最好行为!)。

67210

Java异常处理--啥是异常

任何会导致程序走不下去情况,都可以看做异常。我们对待异常处理方式就两种,要么抛出去,要么自己消化掉。 ?...步骤 1 看一个例子 Customer cst = null; cst.eat(); 声明了一个Customer变量,但是没有实例化就调用它方法,会发生什么呢? ?...image 注意,空指针异常错误信息就是一个null,蛋疼,在工作中曾经在这个地方吃过亏,一个排查老半天了。 如果你想要看具体错误堆栈,就这么写。...步骤 3 异常是向下兼容 假如代码很长,也不确定到底有什么异常,就可以用所有异常父类 -- Exception,这是最赖皮和偷懒做法,但是很多开发人员都喜欢这么做。...步骤 5 告诉别人我有异常未处理:throws 有的时候,明知道方法里面可能会有异常但是不想处理,就用throws抛出去,交给调用方处理。调用方如何也不想处理,就继续抛出去。

1.2K10

13 年 Bug 调试经验总结

例如,如果信令消息在配置和启动程序完成之前就被过早接收,那么可能就会有很多奇怪行为发生。另一个例子:连接在被放进空闲列表之前就被标记为down。...一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...关于这方面的问题没有很好策略方法,如果各位有的话,还请不吝赐教。 7.日志记录。可视化程序做什么至关重要,特别是当逻辑复杂时候。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,被抛出异常不是以为那个。...到此为止错误行为应消失。遵循这些步骤可以确保确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。 其他观察结果 在这13年来一直在跟踪所遇到最棘手bug,很多事情由此而改变。

94890

13 年 Bug 调试经验总结

例如,如果信令消息在配置和启动程序完成之前就被过早接收,那么可能就会有很多奇怪行为发生。另一个例子:连接在被放进空闲列表之前就被标记为down。...一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...可视化程序做什么至关重要,特别是当逻辑复杂时候。确保补充足够多(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,被抛出异常不是以为那个。...到此为止错误行为应消失。遵循这些步骤可以确保确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。 其他观察结果 在这13年来一直在跟踪所遇到最棘手bug,很多事情由此而改变。

69560

被JDK坑没商量?来试试这些方法吧

,导致程序抛出错误。...比如今天早上我们查了一笔订单没有退款,查了一早上最终才发现是同事写代码BigDecimalsubtract方法没有做非null判断处理导致程序抛出了空指针异常,看似简单异常却直接无法让很多订单退款...正确处理方法: 二:Integer.parseInt()方法矫情 事故现场:一次业务场景为拉取订单,打出订单列表记录,财务人员需要拉出对账,结果总是发现少很多数据,奇怪一个现象。...这类数据情况下, 我们来看一个栗子:: 会抛出异常NumberFormatException: 事实上对于这样数据,比如小数、浮点数据、long型数据都可以自动转换,而不是给我们抛出烦人报错信息...你开开心心用Bigdecimal进行了计算,而最终结果返回却有问题,我们来看一个例子: 常见除法用起来没有任何丝毫问题,妥妥.但是一旦程序数据出现以下情况,如果用Bigdecimal来接受前端参数

44820

13 年 Bug 调试经验总结

例如,如果信令消息在配置和启动程序完成之前就被过早接收,那么可能就会有很多奇怪行为发生。另一个例子:连接在被放进空闲列表之前就被标记为down。...一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...可视化程序做什么至关重要,特别是当逻辑复杂时候。确保补充足够多(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,被抛出异常不是以为那个。...到此为止错误行为应消失。遵循这些步骤可以确保确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。 其他观察结果 在这13年来一直在跟踪所遇到最棘手bug,很多事情由此而改变。

70060

13 年 Bug 调试经验总结

例如,如果信令消息在配置和启动程序完成之前就被过早接收,那么可能就会有很多奇怪行为发生。另一个例子:连接在被放进空闲列表之前就被标记为down。...一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...可视化程序做什么至关重要,特别是当逻辑复杂时候。确保补充足够多(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,被抛出异常不是以为那个。...到此为止错误行为应消失。遵循这些步骤可以确保确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。 其他观察结果 在这13年来一直在跟踪所遇到最棘手bug,很多事情由此而改变。

50120

神级程序员教你如何写代码——十年编程内功心法

其实,打破上面那个段子描述那个怪圈一个很有效手段就是统一编码风格。优秀代码可以实现代码即注释,代码本身就可以非常清晰体现出意图来,让别人可以容易读懂。这就是所谓可读性!...什么时候需要抛出异常 关于这个问题,想到了一句极其精炼的话:当函数无法完成其宣称任务时候抛出异常!...完全不用在调用这个函数时候去怀疑是否执行成功了。 再来一句至理名言: 宁愿终止程序也不要带错运行下去。 也就是说,遇到错误时候,宁愿抛出异常终止程序,也不要带着错运行下去。这是在掩耳盗铃!...也许当时你调试时候,在你看来这些奇怪字符串是有意义但是在其他人看来,这些就是天书。运维背锅侠会提刀过来砍你!...ㄟ(▔ ,▔)ㄏ 承认,也写过奇葩代码。 但是,这好像并不是你这个作为未来优秀程序员的人不思进取理由。 小时候,老师教我们要诚实,但是老师自己也不见得能完全做到。我们可以因为这个鄙视他。

2.7K50

和各种诡异 Bug 打交道 13 年,总结了 18 条经验

例如,如果信令信息接收得过早,在配置和启动程序完成之前接收,许多奇怪行为就会发生。另一个例子,当一个连接在被放入空闲列表之前就被标记为断开。...确保添加足够(但也别太多)日志记录。那样你就能弄清楚为什么程序在执行执行任务。让一切运转良好时,无关紧要。但是只要问题发生(这不可避免),你会庆幸你添加了合适日志记录。 ?...检查什么不该发生 通常测试包括检查一些需要行为发生。但是容易忽略他对立面——检查不该发生事确实没发生。 13. 自制工具 通常,创建了自己小工具来使测试更简易。...例如,认为这个问题发生在一个特定方法中,事实上,这个问题甚至根本不会出现在这个方法中。或者抛出异常并不是认为那个。或者认为最新版软件在运行,但它其实是较老版本。...但是碰过好多情况下,之所以发生奇怪问题,是由于不同寻常配置或意料之外使用,而我默认假设是他们是对程序是错。 18. 测试修复效果 如果你已经修复了 bug,还需要再测试。

87780

编程内功心法:如何写代码?

其实,打破上面那个段子描述那个怪圈一个很有效手段就是统一编码风格。优秀代码可以实现代码即注释,代码本身就可以非常清晰体现出意图来,让别人可以容易读懂。这就是所谓可读性!...返回值一般用于表示返回业务值,而异常用于通知客户端程序运行状态改变了。 什么时候需要抛出异常 关于这个问题,想到了一句极其精炼的话:当函数无法完成其宣称任务时候抛出异常!...完全不用在调用这个函数时候去怀疑是否执行成功了。 再来一句至理名言: 宁愿终止程序也不要带错运行下去。 也就是说,遇到错误时候,宁愿抛出异常终止程序,也不要带着错运行下去。这是在掩耳盗铃!...也许当时你调试时候,在你看来这些奇怪字符串是有意义但是在其他人看来,这些就是天书。运维背锅侠会提刀过来砍你!...ㄟ (▔ ,▔) ㄏ承认,也写过奇葩代码。但是,这好像并不是你这个作为未来优秀程序员的人不思进取理由。 小时候,老师教我们要诚实,但是老师自己也不见得能完全做到。我们可以因为这个鄙视他。

1.5K130

和各种诡异 Bug 打交道 13 年,总结了 18 个经验

例如,如果信令信息接收得过早,在配置和启动程序完成之前接收,许多奇怪行为就会发生。另一个例子,当一个连接在被放入空闲列表之前就被标记为断开。...确保添加足够(但也别太多)日志记录。那样你就能弄清楚为什么程序在执行执行任务。让一切运转良好时,无关紧要。但是只要问题发生(这不可避免),你会庆幸你添加了合适日志记录。...12.检查什么不该发生 通常测试包括检查一些需要行为发生。但是容易忽略他对立面——检查不该发生事确实没发生。 13.自制工具 通常,创建了自己小工具来使测试更简易。...例如,认为这个问题发生在一个特定方法中,事实上,这个问题甚至根本不会出现在这个方法中。或者抛出异常并不是认为那个。或者认为最新版软件在运行,但它其实是较老版本。...但是碰过好多情况下,之所以发生奇怪问题,是由于不同寻常配置或意料之外使用,而我默认假设是他们是对程序是错。 18.测试修复效果 如果你已经修复了 bug,还需要再测试。

65230

【干货】如何写代码 -编程内功心法

其实,打破上面那个段子描述那个怪圈一个很有效手段就是统一编码风格。 优秀代码可以实现代码即注释,代码本身就可以非常清晰体现出意图来,让别人可以容易读懂。 这就是所谓可读性!...什么时候需要抛出异常 关于这个问题,想到了一句极其精炼的话:当函数无法完成其宣称任务时候抛出异常!...完全不用在调用这个函数时候去怀疑是否执行成功了。 再来一句至理名言: 宁愿终止程序也不要带错运行下去。 也就是说,遇到错误时候,宁愿抛出异常终止程序,也不要带着错运行下去。这是在掩耳盗铃!...也许当时你调试时候,在你看来这些奇怪字符串是有意义但是在其他人看来,这些就是天书。运维背锅侠会提刀过来砍你!...ㄟ(▔ ,▔)ㄏ 承认,也写过奇葩代码。 但是,这好像并不是你这个作为未来优秀程序员的人不思进取理由。 小时候,老师教我们要诚实,但是老师自己也不见得能完全做到。我们可以因为这个鄙视他。

82280

不要用抛异常做流程控制

最近,无意中看到了别人某段代码,是用抛出异常方式去控制代码逻辑和流程。 比如,程序设置了几种分流策略,在rpc层一个调用会判断当前请求该走哪个策略。...但是当rpc发生异常时,catch之后返回null,然后在主流程中,对rpc结果进行判断,主动抛出异常,然后在外层catch住,打印异常日志,归到默认策略,返回空response。...这个倒不是说不可以,但是个人是不赞成用这种抛出异常方式去控制逻辑更倾向于在主流程检测到策略信息为空时,直接返回空result,而不是抛异常让外层catch....所以,catch 异常耗时。 所以,个人认为,在认为程序可能发生异常关键点加try chtch 就够了,不要用这种机制去做逻辑控制。...我们知道 ,Java所有的异常都是继承自 Throwable,构造函数中有一个native方法:fillInStackTrace(),这个方法,在新创建一个异常对象时,会把堆栈信息都存一遍,即使你不用

1.2K20
领券