1 问题描述

在编写程序的时候免不了面对的问题就是出现错误,而错误分为两部分:看得见的错误和看不见的错误。看的见的错误:在IntellijIDEA编辑器上对于一些语法错误或者关键词单词错误进行标红;看不见的错误:并不会被IntellijIDEA识别,但不会被运行成功。

2 问题分析

看得见的错误很好被解决,本文将围绕如何解决看不见的错误进行展开。看不见的错误虽然很不被标红,但运行后会被报exception,这时候会用到调试的方法。调试能够解决许多问题,不仅仅是exception的问题,还可以检测运行过程中参数的值

3 解决方案

下面所示代码是本次围绕的所有代码

图1

第一步 设置断点

在想要设置断点的代码行,在行号栏的后面单击鼠标左键或者使用快捷键(因电脑而异)。

图2

第二步 开启调试会话

点击idea左上角的小虫子,进入调试,(注意左侧的下拉框选中应该为调试运行的程序,本人的程序名为DemoOne)。

图3

在运行后(debug模式),程序会停留在打断点的位置且没有被运行本行。同时idea下方会出现此样的Debugd试图。图中红色箭头所指之处就是目前所运行之处,右侧视图里面是检测目前的变量的值。

图4

第三步 单步调试

单步调试主要应用了中的方框中的左边四个按钮:step over、step into、force step over、step out。

Step over

单步执行,运行下一条代码;运行过程中遇到子函数时是不会进入子函数内的,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。因此图 1中的代码,并不会进入maxTwo(x,y)和Math.max(x,y)两个函数,而是直接被输出了结果,然后结束程序。

Step into

运行下一条代码;运行过程中遇到子函数时能够进入子函数内的,且继续单步执行。

注意:进入的子函数,只包括自己设计编写的函数,例如图 1中第17行的maxTwo(x,y)能够被进入,但是第18行的Math.max(x,y)不能够进入函数主体。

也就是包括了stepover的功能但是多了一个能够进入子函数的功能。

force step into

运行下一条代码;运行过程中遇到任意函数都能够进入,也就解决了step into上的不足。

step out

普通语句时,结束程序;for循环时,依旧执行循环体,但循环完成后结束程序;若正在子函数内部,那么就执行完子函数余下部分,并返回到上一层函数。一般此方法用于,自己认为此函数并没有问题,就使用其进行退出,直接下一条语句。

Drop frame

当已经运行于某个函数内,该按钮会亮起,点击后可返回到当前方法的调用处,重新执行。为便于理解,笔者在maxTwo(x,y)里面多写了两条代码,点击中间的正方形框时就会被跳入到最下方的方框中的main()函数中。

4 总结

本文建议介绍了如何使用idea去调试,主要对step over / step into / forcestep into/step out这四个按钮进行阐述,希望对正在阅读的您一点帮助。

参考文献

WB4S ——《Intellij IDEA调试功能使用总结》——博客园

更多精彩文章:

什么是机器学习

关于网页首页设计的一点思考

新手小白应该如何学习MUI

聊一聊编程的本质

深入理解浏览器内核 - 概述

深入理解浏览器内核 - 浏览器内核介绍

深入理解浏览器内核 - 浏览器内核依赖关系

python快速求解不定积分和定积分

AI告诉你张无忌最爱的竟是...

Jupyter快速编辑高大上数学公式 泰勒展开式

Jupyter快速编辑高大上数学公式 常见希腊字母

基本初等函数 指数函数

基本初等函数 指数函数 代码篇

聊一聊JavaWeb面试

聊一聊单片机和服务器

50行代码实现简单的网站服务器

50行代码实现网站服务器 2

50行代码实现网站服务器 3

Tomcat源码分析之 doGet方法(一)

Tomcat源码分析之 doGet方法(二)

Tomcat源码分析之 doGet方法(三)

Tomcat源码分析之 doGet方法(四)

Tomcat源码分析之中文乱码(一)

一种基于状态机的 DOM 树生成技术(1)

一种基于状态机的 DOM 树生成技术(2)

点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

idea调试怎么跳出循环_Idea调试技巧相关推荐

  1. idea调试怎么跳出循环_IDEA调试技巧条件断点实现步骤详解

    调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能愉悦.以下介绍下IDEA使用条件[Condition]断点的方法 1.编写一段样例代码 /** * @author jiashubing ...

  2. 用 GDB 调试Linux程序及有用技巧

    用 GDB 调试Linux程序及有用技巧(转) armlinux   2008-06-19 10:48   阅读91   评论0 字号: 大大  中中  小小 GNU的调试器称为gdb,该程序是一个交 ...

  3. Eclipse调试Java的10个技巧【转】

    clipse调试Java的10个技巧 先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时 ...

  4. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  5. 一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧

    本文翻译:Few Tips on Customizing Debugging Window View in Visual Studio . 使用DebuggerBrowsable特性可以自定义调试窗体 ...

  6. python代码调试中间变量_Python代码调试的那些“最少且必要”技巧

    原标题:Python代码调试的那些"最少且必要"技巧 异常处理模块能帮助我们在运行期间处理异常信息,但Python代码还有更为基础的错误--语法错误和逻辑错误. 语法错误相对简单, ...

  7. Eclipse 调试器:零距离接触实战技巧

    Eclipse 调试器:零距离接触实战技巧 id="iframeu2606276_0" src="http://pos.baidu.com/ackm?rdid=26062 ...

  8. idea调试怎么跳出循环_使用IDEA的Debug调试功能,查看程序的运行过程

    Debug追踪,使用IDEA的断点调试功能,查看程序的运行过程 知乎视频​www.zhihu.com 1. 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序 ...

  9. 【嵌入式】C语言程序调试和宏使用的技巧

    00. 目录 文章目录 00. 目录 01. 调试相关的宏 02. # 字符串化操作符 03. ## 连接操作符 04. 调试宏第一种形式 05. 调试宏的第二种定义方式 06. 对调试语句进行分级审 ...

最新文章

  1. 在 Ubuntu 上安装 Android Studio
  2. Codeforces Round #777 (Div. 2)【未完结】
  3. C#中ToString()格式大全(转)
  4. 深圳科技园血案:程序员砍杀产品经理
  5. HTTP-post请求重定向后变成了GET请求
  6. Amr and Pins
  7. 怎么隐藏Windows11开始菜单中的推荐面板
  8. php跳过一段html,PHP_一段能瞬间秒杀所有版本IE的简单HTML代码,许多人都非常讨厌Internet Explore - phpStudy...
  9. HTTPS 使用成本
  10. php求平均值的函数_最全计算机二级函数关键知识点汇总整理!
  11. MySQL读写分离(二)—— jdbc驱动实现
  12. 【渝粤教育】国家开放大学2018年春季 0248-22T电工电子技术 参考试题
  13. 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?
  14. 【十次方】Springboot中使用Redis做缓存
  15. JAVA基础语法:java编程规范和常用数据类型
  16. 抖音大数据,教你爬爬爬!
  17. Openstack Cinder Ceph(RBD)备份恢复过程(backup/restore)
  18. 【网络】把路由器用作交换机的方案
  19. PHP获取Opcode及C源码
  20. Xamarin.Forms 之我的花园 - 2.从照片库选择图片和拍照功能

热门文章

  1. 手机版qq邮箱一直连接服务器失败,iphone邮箱怎么连接服务器 iphone邮箱无法连接服务器怎么办...
  2. [Python中矩阵上下左右翻转(np.flip)]
  3. 通过Idea启动项目让控制台输出JAVA汇编代码
  4. Linux | MemoryError: Unable to allocate 2.10 GiB for an array内存溢出问题解决
  5. 解决华硕主板使用机箱前侧面板无声音问题
  6. 关于#define和typedef
  7. killall与killall-9
  8. missing method or missing parameter
  9. Vue项目开发中一些常见问题
  10. 《绝地求生》平底锅挡子弹bug,源于程序员的一个错误