首页
学习
活动
专区
圈层
工具
发布

学会这招再也不怕手误让代码崩掉

而异常处理就是类似于在你知道这个倒霉蛋来的时候,肯定没有好话,你提前预知到要发生,反手就是给他一巴掌,然后让他好好说话,最后事情就朝着好的方向发展了。...二、异常处理的小应用 我们经常会遇到比如需要输入密码,当你输错密码的时候,你不希望退出这个系统,而是重新输入密码;又或者是要读取一张图片,但是有时候手误打错路径,你不想让整个代码重头再运行一次,为了让代码能够识别你输错并允许你重新输入...思路: (1)找到可能出错的地方,进行检测判断; (2)当输入正确时,直接执行下一步操作; (3)当输入错误时,重新执行,直到正确。...:https://github.com/DWCTOD/AI_study/blob/master/06-yichangchuli 三、效果展示 使用系统自带的录屏软件操作一遍吧,让大家看的更加清晰: ?...难受啊,不知道为什么显示的图片有问题,这个录屏软件有毒,自己电脑上面看的没事的!!!以后再研究一哈。

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

    Java——你真的了解Java异常处理机制吗?

    大家好,又见面了,我是你们的朋友全栈君。 目录 1.初识异常 2.异常的基本用法 异常处理流程 3.为什么要使用异常? 异常应只用于异常的情况 4....此时编译过程中就会出 错, 这是 “编译期” 出错....①try:try块中主要放置可能会产生异常的代码块。如果执行try块里的业务逻辑代码时出现异 常,系统会自动生成一个异常对象,该异常对象被提交给运行环境,这个过程被称为抛出 (throw)异常。...一直到 main 方法也没有合适的代码处理异常, 就会交给 JVM 来进行处理, 此时程序就会异常终止. 3.为什么要使用异常?...看起来根本不明显,这正是它没有真正被使用的原因。事实证明,作为 一个要对数组元素进行遍历的实现方式,它的构想是非常拙劣的。

    82510

    Go 语言错误及异常处理篇(二):defer 语句

    Go 语言中的类没有构造函数和析构函数的概念,处理错误和异常时也没有提供 try...catch...finally 之类的语法,那当我们想要在某个资源使用完毕后将其释放(网络连接、文件句柄等),或者在代码运行过程中抛出错误时执行一段兜底逻辑...f.Close() 方法会在函数执行完成后或读取文件过程中抛出错误时执行,以确保已经打开的文件资源被关闭,从而避免内存泄露。...由于 defer 语句的执行时机和调用顺序,所以我们要尽量在函数/方法的前面定义它们,以免在后面执行时漏掉,尤其是运行时抛出错误会中断后面代码的执行,也就感知不到后面的 defer 语句。...而如果我们把 j 的值设置为 0,则函数会抛出 panic: ?...关于 panic 及其内部执行逻辑,学院君将在下一篇教程给大家介绍。

    94420

    《深入Python:新手易踩的语法雷区与进阶启示》

    缩进作为Python语法的核心,用以区分代码块,这与许多使用大括号或关键字来界定代码块的编程语言截然不同。...在字符串与数字的操作中,若试图直接将字符串和数字相加,程序会毫不犹豫地抛出错误,因为它们属于不同的数据类型,无法直接进行这种运算。...这种错误往往难以察觉,因为代码在语法层面可能并没有明显的错误提示,只有在程序运行时,通过结果的异常才能发现问题所在。...当我们遇到缩进错误时,不能仅仅停留在修改缩进的表面,而应该深入思考为什么会出现这种错误,是对代码块的逻辑结构理解不够清晰,还是在编写代码时的疏忽大意。...通过这样的反思,我们能够培养严谨的编程习惯,提高代码的质量和可读性。在处理数据类型错误时,我们可以进一步研究Python的数据类型系统,了解不同数据类型之间的转换规则和适用场景。

    15710

    【编程指导】学习编程6条箴言

    当你第一次学习编程时,你会很快撞上这么个问题。你觉得你已配置好一切了,你查了又查,但你的代码就是有!问!题!你对如何排错毫无头绪。错误信息(如果运气好你有的话)很有可能对你说的是---“我了个大艹”。...你觉得你永远不可能搞定,觉得自己就不是编程的料。嘿!当我第一次尝试编写C++程序,运行,却只得到 “segmentation fault” 这样的错误代码时,我也有过一样的沮丧感。...总有人说你做的不对。 大括号{}应该怎么放放?该不该不用tab来缩进?该不该对代码添加注释?对于这些问题,大家的做法各有不同。没有谁有标准答案。...“你根本就不是真正的程序员,我才是。”要我说,编程对于不同的人有不同的含义。同时,编程的含义随着时间的流逝也在变化。...这就是我之前提到的信念的价值所在。如果你真的坚持到底,你就真的会胜利。 ? 作者:米洛(知乎)

    90550

    Python 工匠: 异常处理的三个好习惯

    继续阅读前,我希望你已经了解了下面这些知识点:异常的基本语法与用法(建议阅读官方文档 “Errors and Exceptions”)为什么要使用异常代替错误返回(建议阅读《让函数返回结果的技巧》)为什么在写...假如你把眼睛贴近屏幕,非常仔细的检查这段代码。你会发现在编写函数时,我犯了一个小错误,我把获取正则匹配串的方法错打成了 obj.grop(1),少了一个 'u'( obj.group(1))。...那么这样的问题就根本不会发生,精准捕获包括:永远只捕获那些可能会抛出异常的语句块尽量只捕获精确的异常类型,而不是模糊的 Exception依照这个原则,我们的样例应该被改成这样:图片2....Django API 根本没有任何关系这就是异常类抽象层级不一致导致的结果。...最后再总结一下要点:只捕获可能会抛出异常的语句,避免含糊的捕获逻辑保持模块异常类的抽象一致性,必要时对底层异常类进行包装使用“上下文管理器”可以简化重复的异常处理逻辑看完文章的你,有没有什么想吐槽的?

    90910

    为什么写了多年代码,还是没形成自己的工程思维?

    【引】如果认为“善战者无赫赫之功”是错的,如果项目的风平浪静全部被归为没有难度,如果只有不断救火的人才能得到赏识,如果只有在鸡飞狗跳的环境中才能得到成长的话, 就不要看本文了。...成长的关键不是关于多年的经验,不是关于懂得更多的语言,也不是关于编写更好的代码。程序员越成熟,就越冷静。我在很多人身上看到了这一点,最终开始在自己身上也看到了这一点。...他们花更多的时间考虑副作用,而不仅仅是解决问题,不喜欢在没有找到根本原因的情况下结束一天的工作。 到目前为止,许多人可能已经明白了为什么 RCA (根本原因分析) 对于是如此重要。...读读自己的代码,问问自己ーー这是否可以通过任何方式改进?让代码比你能够找到的更好。 因为六个月后,当回到自己的代码时,要么会感谢自己编写了干净、可维护的逻辑,要么会讨厌自己留下这么一团糟的代码。...面向失败而设计,假设事情会在某个时候出错ーー服务器会崩溃,依赖关系会失败,用户会犯错误。

    6.3K76

    Github||What TheFuck?

    正如你想的那样,每当敲命令手跟不上脑子的时候,就很容易出错,经常跟我聊天的人应该能感受到我的输入法常常会有自己的想法,以至于一直错,再而衰,三而竭,人直接枯萎了好吗!...明明是一个很简单的程序,我在安装时还摸索了好久,看了各种教程,说到底还是有管理员权限操作起来方便。...这里就要提到啥是管理员权限 服务器像是一台超级计算机,但是这个计算机不像我们自己的电脑那样私人化,它可以多人共同使用(有钱的话自己享受一个服务器也是可以的),这时就会存在一个权限问题 即我能使用的范围有多少...上的安装,看起来命令是很简单的,需要用到管理员权限(sudo),可当我sudo的时候 直接收到了死亡三法则 Do I have great responsibility?...当我输入密码以后,发现我根本用不了sudo命令(我不在sudoers里),而且还会被上报(心凉凉)。 希望这条妄图篡权的report不被发现。

    59250

    Go 错误处理篇(二):defer 语句及其使用

    Go 语言中的类没有构造函数和析构函数的概念,处理错误和异常时也没有提供 try...catch...finally 之类的语法,那当我们想要在某个资源使用完毕后将其释放(网络连接、文件句柄等),或者在代码运行过程中抛出错误时执行一段兜底逻辑...f.Close() 方法会在函数执行完成后或读取文件过程中抛出错误时执行,以确保已经打开的文件资源被关闭,从而避免内存泄露。...由于 defer 语句的执行时机和调用顺序,所以我们要尽量在函数/方法的前面定义它们,以免在后面编写代码时漏掉,尤其是运行时抛出错误会中断后面代码的执行,也就感知不到后面的 defer 语句。...在函数正常执行的情况下,这两个 defer 语句会在最后一条打印语句执行完成后先执行第二条 defer 语句,再执行第一条 defer 语句: 而如果我们把 j 的值设置为 0,则函数会抛出 panic...关于 panic 及其内部执行逻辑,学院君将在下一篇教程给大家介绍。

    51920

    “如今,代码数已膨胀至天文级别”

    根本原因在于,程序员根本不懂怎样通过高效率的底层代码来实现目标,他们甚至从来没见过底层的高效代码。没见过的东西怎么可能做得出来,还要做得更好呢?...这是完全可能的,而且会更容易、更可靠、效率更高,还很容易调试,甚至能更稳定地工作。 代码膨胀似乎是像我这种老家伙的碎碎念,毕竟我已经上年纪了。...当我在Surface笔记本(几乎是新的!)上点击硬盘图标时,我能看到明显的延迟,电脑在一点点画出用户界面。这需要很久,我估计至少有半秒钟,对于CPU来说这就像几十亿年那么长。...每个公司都有好几千位“程序员”,使用机器学习从GitHub复制粘贴这些毫无用处的垃圾代码。两个数相加就要使用32个DLL和16个Windows服务还有几亿行代码。 Twitter有两千个程序员。...但Tweetdeck偶尔还是无法加载某个用户的时间线。这个bug已经有四年多了,我估计没人知道为什么,背后的代码只不过是一堆复制粘贴的垃圾。

    59420

    “如今,99.9% 以上的代码都是垃圾!”

    电脑里 99.9% 以上的代码都是毫无用处的垃圾 我知道怎么回事,我也见过其他程序员的实现方式。根本原因在于,程序员根本不懂怎样通过高效率的底层代码来实现目标,他们甚至从来没见过底层的高效代码。...这是完全可能的,而且会更容易、更可靠、效率更高,还很容易调试,甚至能更稳定地工作。 代码膨胀似乎是像我这种老家伙的碎碎念,毕竟我已经上年纪了。...当我在Surface笔记本(几乎是新的!)上点击硬盘图标时,我能看到明显的延迟,电脑在一点点画出用户界面。这需要很久,我估计至少有半秒钟,对于CPU来说这就像几十亿年那么长。...每个公司都有好几千位“程序员”,使用机器学习从GitHub复制粘贴这些毫无用处的垃圾代码。两个数相加就要使用32个DLL和16个Windows服务还有几亿行代码。 Twitter有两千个程序员。...但Tweetdeck偶尔还是无法加载某个用户的时间线。这个bug已经有四年多了,我估计没人知道为什么,背后的代码只不过是一堆复制粘贴的垃圾。

    40410

    ChatGpt的出现,前端真的已死?

    随着技术的改进,我们可以期待一些粗糙的边缘得到打磨,但从根本上讲,总会存在一定程度的不准确性。这些工具根本没有任何客观验证其回答的机制。 因此,准确性会提高,但永远不会完美。...那么代码中的安全漏洞呢?当事情出现严重错误时,谁应该负责? 再多说一点:生成一个50行的HTML文档和生成一个生产就绪的Web应用之间有着巨大的差距。...因此,与其试图押注未来会带来什么,为什么不关注你热衷的事物,你感兴趣的事物,以及你擅长的事物呢? 使用LLM来帮助你学习 我从一些人那里听说,ChatGPT在学习技术技能方面非常有帮助。...使用这种工具来帮助你学习有正确和错误的方法。 错误的方法是把它当作GPS导航。当我需要开车去某个地方时,我会把地址输入GPS,然后无条件地遵循它的指示。...即使未来的GPT版本不再产生那么多的幻觉,我也想出了很多为什么这样做行不通的原因。 我可能是错的。我没有水晶球。就我所知,太阳明天可能会爆炸。但我真的不认为我们正处在web开发人员被取代的边缘。

    97450

    有效处理Java异常的三个原则,你知道吗?

    为什么出错? 在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。...这四个类是泛化的,并不提供多少出错信息,虽然实例化这几个类是语法上合法的(如:new Throwable()),但是最好还是把它们当虚基类看,使用它们更加特化的子类。...堆栈信息立即反映出什么出了错(提供了非法参数值),为什么出错(文件名不能为空值),以及哪里出的错(readPreferences()的前部分)。这样我们的堆栈信息就能如实提供: ?...上 面的代码在完全没有能力从FileNotFoundException中恢复过来的情况下就捕获了它。如果文件无法找到,下面的方法显然无法读取它。...把责任交给 readPreferences()的调用者,让它来研究处理配置文件缺失的恰当方法,它有可能会提示用户指定其他文件,或者使用默认值,实在不行的话也许警告用户并退出程序。

    1.9K10

    Linux该如何学习,给你支招

    二、碰到问题怎么办 任何人学习和使用 Linux 或多或少会遇到问题,很多人遇到问题的第一个念头就是问人。没错!这可以快速解决问题。...Linux 系统的一个非常大的好处是,当命令执行错误或系统设置错误时,通常会清楚地显示错误信息,告诉你哪里出错了,只要认真观察报错信息,大概就知道问题出现在哪里,应该如何解决了。...有的操作步骤复杂,出现状况时,回头检査一下,是不是前面步骤的命令敲错或配置文件改错。...另外,千万不要问那种令人头疼的问题,如 Linux 怎么备份、Linux 权限有哪些、xx 服务怎么配置、oo 脚本帮写一个……你问饺子皮为什么这么擀会破,我可以告诉你;你问怎么包饺子,这就是你找茬儿了...这其实是一个使用习惯的问题,笔者常常想,如果我们第一个接触的操作系统就是 Linux,那么之后我们再学习 Windows,可能我们也会感慨"这个系统为什么必须启动图形界面才能操作",说到底,是一个习惯问题吧

    34740

    JSON.parse 执行出错:SyntaxError: Unexpected end of JSON input

    出现这个错误的原因主要有以下几种:JSON 字符串未完全传输或读取:如果你从网络请求、文件或其他来源获取 JSON 数据,但由于某种原因数据没有完全接收,可能会导致解析时出现问题。...空字符串或无效的 JSON:有时,传递给 JSON.parse() 的可能只是一个空字符串,或者根本没有有效的 JSON 格式数据,导致解析失败。让我们通过一些具体的例子来进一步理解这些问题。...",此时,JSON.parse() 会因为数据未完全加载(即缺少闭合的大括号)而抛出错误:SyntaxError: Unexpected end of JSON input。...你可以使用一些工具,如 JSONLint,来验证 JSON 数据是否正确。增加异常处理:使用 try...catch 语句来捕获解析错误,以便在发生错误时能够及时处理,而不是让程序崩溃。...你可能会遇到如下代码:fetch('/user') .then(response => response.json()) .then(data => { console.log(data.name

    2.2K10

    上手之Python之异常

    f = open('linux.txt', 'r') 异常的捕获方法  为什么要捕获异常 世界上没有完美的程序,任何程序在运行的过程中,都有可能出现:异常,也就是出现bug 导致程序无法完美运行下去。...try: print(1) except Exception as e: print(e) else: print('我是else,是没有异常的时候执行的代码')  异常的finally...,真开心') finally: f.close() 异常的传递  异常是具有传递性的 当函数func01中发生异常, 并且没有捕获处理这个异常的时候, 异常 会传递到函数func02, 当func02...也没有捕获处理这个异常的时候 main函数会捕获这个异常,  这就是异常的传递性....提示:     当所有函数都没有捕获异常的时候, 程序就会报错  利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候, 就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常

    91140

    安全对你来说意味着什么

    当我进人某个大学霸的群里面才知道有 kali 这个系统(BT5 的前身)我真的用不习惯, windows 都是图形界面的,但是这个以命令行的方式为主,我刚开始使用 kali 的各种命令时,没有基础就一直问啊问啊...safe~thorn:lock and key 在看了这么多的人说的安全对我意味着什么之后,大家有什么想法? 我为什么会选责任,当我踏入无线安全的这个领域之后就有了责任感。...很多人觉得无线安全没有必要,刚开始我也是这样觉得的,当然其他人也会这么想。我发现这种想法大错特错,虽然专门从事无线领域的人非常少,那么无线领域为什么还存在呢?...我提几个建议: 1、看一下法规 2、学一些编程语言 3、尽量学习好数学和英语对以后有帮助 4、静下心来学习 5、知识是相通的 我为什么会这样这样说,就拿 WiFi 的一些常见的攻击手法来说,我使用钓鱼...你还是会在拿起键盘鼠标一顿狂打代码命令直到你的目标达成,为什么你会这样?因为从业信息安全的人绝不认输。

    1.4K00

    Python语言程序设计之三--列表Li

    0,根本没错,以后的计算更不会错,可是结果为什么会这样?...我始终想不明白。今天记录下来,再想想或者问问别人吧。 4、列表初始化易错点 二维列表的操作复杂,而且有一个下标溢出的错误非常容易犯。最关键的是写完代码运行报错,虽然知道是下标溢出,但是就是不知道错哪。...让我非常郁闷。到我写下这段文字,我至少已经犯了3次这样的错误,每次都是调试好久,想了好久才猛地想起我错在哪。...根据其提示信息可以看出,是下标溢出错误。可我的变量i和j是绝对不会超出范围的,怎么会溢出呢?我百思不得其解。后来猛地明白了原因所在。...里面什么都没有,那下面我怎么能通过下标来访问matrix中的元素呢?!!!!所以,当我访问行为 i 列为 j 的元素时,系统就一定会报错,而且一定是下标溢出错误。这就是原因所在。

    1.3K10
    领券