精华内容
下载资源
问答
  • 错误的概念与处理 计算机程序错误分为两种:语法错误和逻辑错误 比如alert拼写错误;写成了alter var a = 3+4; alert(a); alert(a); a++; alert(a); 运行结果只显示7,后面的结果没有显示,说明后面的代码...

    错误的概念与处理

    计算机程序错误分为两种:语法错误和逻辑错误

    比如alert拼写错误;写成了alter

    var a = 3+4;

    alert(a);

    alert(a);

    a++;

    alert(a);

    运行结果只显示7,后面的结果没有显示,说明后面的代码没有执行。因为

    在输出7之后遇到了语法错误,程序终止,

    上例也进一步说明了解释型语言的特点,翻译一条,执行一条,遇到错误终止执行

     

    语法错误的发现方法:

    (1)开发工具的console窗口,能显示错误即说明

    (2)try ................catch 捕获异常

    /* 报名参军的条件:17-24周岁*/
    var age = Number(prompt("请问你的年龄"));
    if(17 <= age <= 24){
        alert("欢迎你报名参军")
    }else{
        alert("抱歉,你不能参军")
    }

    当你输入年龄时96或者3都可以报名参军,结果显然是错误的。但是执行过程中没有与语法错误

    调试的基本原理:

    程序的执行时自动的,而且速度是非常快的,无法了解中间的执行过程。但是几乎所有的开发工具都有调试的功能,可以去控制程序的执行节奏,从而可以让开发工具看清执行过程

    怎么去控制执行节奏呢?

    (1)设置断点

    打开开发者工具

    sources页打开源代码,在代码左侧(行号边上)单击即可在该出设置断点

     

    2)单步执行(step

    每执行一步都会停下来,然后在继续下去

    快捷键F10

     

    控制节奏的目的是:看清或者了解程序的执行过程,而不仅仅是结果。

    怎么看结果呢

    (1)查看程序执行的轨迹,也就是上图中所指示即将要执行的代码指示器,如果轨迹与预期不一致,说明上一步执行的代码出现了逻辑错误了。

    (2)查看变量和表达式的值

     

     

    也可以通过选中代码,然后快捷键复制到watch

     


    watch窗口就可以看到添加的变量或者表达式的值

    因为计算机程序的每一步执行的结果都是唯一的、可预期的,同时我们又可以通过上述手段 控制程序的运行节奏并查看程序执行的状态(如轨迹、变量表达方式的值),也就是可以看到实际执行结果。那么将实现结果和预期的结果对比,如果出现不一致,说明刚刚执行的那一步出现的错误,即定位错误

    一旦定位错误,根据所学知识或者经验,应该很容易分析出错的原因,从而找到解决方案

    再来调试一个程序

    var a = prompt("请输入第一边长");
    var b = prompt("请输入第二边长");
    var c = prompt("请输入第三边长");
    var p = (a + b + c) / 2;//计算周长的一半
    var s = Math.sqrt(p * (p - a) * (p - b) * (p - c));//海伦公式计算面积
    alert(s);

     

    运行程序,程序在预定的断点位置停下来

    查看abc变量的值

     

    单步执行,查看p的值

     

    在查看a+b+c的值

     

    a+b+c的值并不是我们预期的,12,而是“345”原来是做了字符串的拼接运算,而不是我们所希望的加法,所以是类型问题

    解决方案就是将输入的数据(字符串)转换为数值

    在重新调试程序,并查看结果

     

    调试工具不仅仅是定位错误工具,也是一个非常重要的学习工具,

    能够让我们直观的看到程序的运行轨迹以及运行状态,有助于我们对抽象知识的理解

    4.2调试原理、工具和方法

    展开全文
  • 错误的概念与处理

    千次阅读 2017-07-28 18:26:24
    语法错误的发现方法: (1)开发者工具的console窗口,能显示错误及其说明 (2)try……catch 捕获异常   逻辑错误:程序在语法上没有问题,但是实际执行结果和预期结果有出入。 script>  /*报名参军的...


    计算机程序的错误有两种:语法错误和逻辑错误。

    语法错误的发现方法:

    (1)开发者工具的console窗口,能显示错误及其说明

    (2)try……catch 捕获异常

     

    逻辑错误:程序在语法上没有问题,但是实际执行结果和预期结果有出入。

    <script>
        /*报名参军的年龄条件:17~24周岁*/
       
    var age = Number(prompt("请问你的年龄是?"));
        if(17<=age<=24){
            alert("欢迎你报名参军!");
        }else{
            alert("抱歉,你不能参军!");
        }
    </script>

    当输入年龄96或者3,都能报名参军,结果显然是错误的,但执行过程并没有任何语法错误。

    调试的基本原理:

    程序的执行是自动的,而且速度非常快,无法了解中间的执行过程。

    但是几乎所有的开发工具都提供了调试的功能,可以去控制程序的执行节奏,从而可以让开发者看清执行的过程。

    怎么去控制执行节奏呢

    (1)设置断点

    打开开发者工具

    在sources页打开源代码

    在代码左侧(行号边上)单击即可在该处设置断点

    (2)单步执行(step)

    每执行一步都会停下来,然后再继续下一步

    快捷键F10

     

    控制节奏的目的是看清或者了解程序的执行过程,而不仅仅是结果。

    怎么看结果呢

    (1)查看程序执行的轨迹,也就是上图中的指示即将要执行的代码指示器,如果轨迹与预期不一致,说明上一步执行的代码出现逻辑错误了。

    (2)查看变量、表达式的值

    a.在watch窗口添加要查看的变量或表达式,比方输入age

    此时就可以看到变量age的值

    也可以通过在代码中选中要查看的变量或表达式,右键选择添加到watch

     

    在watch窗口就可以看到添加的变量或者表达式的值。

     

    因为计算机程序的每一步执行的结果都是唯一的、可预期的;同时我们又可以通过上述手段控制程序的运行节奏并查看程序执行的状态(如轨迹、变量表达式的值),也就是可以看到实际执行结果。那么将实际结果和预期结果对比,如果出现不一致,说明刚刚执行的那一步出现的错误,即定位错误

    一旦定位错误,根据所学知识或经验,应该就很容易分析出错误原因,从而找到解决方案。

                           

    展开全文
  • 做了一些实验,UDP连接数的概念终于搞清了,原来是大家乱取名称。360获取的UDP连接数,无非就是通过调用GetExtendedUdpTable获取,而MSDN对这个API的解释根本没有出现连接数字眼。MSDN只是说这个API会获取所有已绑定...

    做了一些实验,UDP连接数的概念终于搞清了,原来是大家乱取名称。360获取的UDP连接数,无非就是通过调用GetExtendedUdpTable获取,而MSDN对这个API的解释根本没有出现连接数字眼。MSDN只是说这个API会获取所有已绑定地址的UDP套接字。还有360忽略对svchost.exe(用于DNS服务的那个)的统计,估计是不想让用户强制关闭该进程。

    展开全文
  • 总线错误和段错误相关概念

    千次阅读 2010-02-03 20:13:00
    来自:c专家编程.P157在UNIX上编程时,经常会遇到如下两个常见运行时错误:bus error (总线错误)segmentation fault (段错误) 总线错误总线错误几乎都是由于未对齐读或写造成。它之所以称为总线错误,...

    来自:c专家编程.P157

    UNIX上编程时,经常会遇到如下两个常见的运行时错误:

    bus error  (总线错误)

    segmentation fault   (段错误)

     

    总线错误

    总线错误几乎都是由于未对齐的读或写造成的。它之所以称为总线错误,是因为出现未对齐的内存访问请求时,被堵塞的组件就是地址总线。对齐的意思就是数据项只能存储在地址是数据项大小的整数倍的内存位置上。在现代的计算机架构中,尤其是RISC架构,都需要数据对齐,因为与任意的对齐有关的额外逻辑会使整个内存系统更大且更慢。通过迫使每个内存访问局限在一个cache行或一个单独的页面内,可以极大地简化如cache控制器或内存管理单元这样的硬件。

    我们表达“数据项不能跨越页面或cache边界”规则的方法多少有些间接,因为我们用地址对齐这个术语来陈述这个问题,而不是直截了当说是禁止内存跨页访问,但它们说的是同一回事。例如,访问一个8字节的double数据时,地址只允许是8的整数倍。所以一个double数据可以存储于地址24800832768,但不能存储于地址1006,页和cache的大小是经过精心设计的,这样只要遵守对齐规则就可以保证一个原子数据项不会跨越一个页或cache块的边界。

     

    段错误

    段错误通常是由于解除引用一个未初始化或非法值的指针引起的。以发生频率为序,最终可能导致段错误的常见编程错误是:

    1、坏指针错误:在指针赋值之前就用它来引用内存;或者向库函数传递一个坏指针(如果调试器显示系统程序中出现了段错误,很可能并不是系统程序引起的段错误,问题可能就出现在自己的代码中);或者指针被释放后还继续访问它的内容。

    2、改写错误:越过数组边界写入数据,在动态分配的内存空间以外写入数据,或改写一些堆管理数据结构(在动态分配的内存之前的区域写入数据就很容易发生这种情况)

    3、指针释放引起的错误:释放同一块内存两次,或释放一块未曾使用malloc分类的内存,或释放一个无效的指针。一个极为常见的与释放内存有关的错误就是在 for(p=start;p;p=p->next) 这样的循环中迭代一个链表,并在循环体内使用 free(p) 这样的语句。这样,在下一次循环迭代时,程序就会对已经释放的指针进行解除引用操作,从而导致不可预料的结果。

    展开全文
  • top1 top5错误概念

    2020-05-24 10:43:45
    在测试图片50个分类概率中,取前面5个最大分类概率,正确标签(分类)有没有在里面,就是它是不是这前5个中一个,如果是,就是分类成功,那么他TOP-5正确率此时等于:所有测试图片中正确标签在前五个分类...
  • 主要是想把数字转换成字符,结果转换时候用了%s,应该用%d。 我个人感觉这个正数转换成字符串,用正数去除10,末尾,然后再除10,是倒数第二位。依次,知道不能除为止。在倒序一下就行了。 要是用...
  • 错误的CPU时间片大小概念

    万次阅读 热门讨论 2012-08-08 15:35:15
    误导各位大侠了。原文已删除。
  • 转载整合自: 关于Android.so文件你所需要知道 和Android SO 文件兼容和适配  不论是否被发现,一切荣誉归属于大佬。现有CPU架构类型开发Android应用时,有时候Java层编码不能满足实现需求,就需要到C...
  • .NET编程初学者容易犯的错误和容易混淆的概念 今天转载了好几篇文章,这篇对偶现在的情况最有用,希望能够对您也有用!?呵!贴在这里!转载自M$中文技术站一、分不清楚的对象与类即使是初学者也知道面向对象这个名词。...
  • Cost Based Optimizer - Common Misconceptions and Issues 基于成本优化器 —— 一般错误概念和问题 Introduction 介绍 ~~~~~~~~~~~~ 本短文着意于消除一些关于基于成本优化器(CBO)的错误说法,强调一般...
  • 有人在学习 Vue 过程中遇到一个奇怪问题,并为之迷惑不已——为什么这么简单一个项目都会出错。 这是一个简单到几乎不能再简单 Vue 项目,在 index.html body 中有一个 id 为 app div 根元素,其中包含...
  • Fault injection(错误注入)的概念

    千次阅读 2007-09-08 20:23:00
    n software testing, fault injection is a technique for improving the coverage of a test by introducing faults in order to test code paths, in particular error handling code paths, that might otherwise
  • C#错误和异常一、基本概念 一、引言 一个健壮程序少不了错误和异常提醒。这在那些容易发生问题程序片段显得十分有必要。C#具有很好的错误和异常机制。可以提醒我们程序有没有发生错误,发生了什么样的错误。...
  • 我人为制造了一个异常(将SQL SERVER关闭了),上面代码没有产生作用,系统仍然提示用户未处理的异常,请问异常和错误是两个不同的概念吗?什么情况下,上面代码会执行呢? [img=...
  • 异常处理的概念与分类什么是异常? 异常是程序在正常执行过程中发生的未预料的事件。 例子:DECLARE v_name emp.ename%TYPE; v_sal emp.sal%TYPE; BEGIN SELECT ename,sal INTO v_name,v_sal FROM emp WHERE...
  • ERROR: Memory overflow. Write to Address 7000fe with data xxxxxxxxxxxxxxxx4634899aabe03499 will be lost You must increase the MEM_BITS parameter of define MAX_...出现该问题原因分析: ddr3_paramete...
  • 根本不存在链接,就是错误链接。 错误链接与死链接区别: (1).错误链接是由于用户疏忽,请求链接不存在。 (2).死链接是原来访问正常,后来因为网站变故而不能访问。 发生错误链接情况: (1).用户对...
  • 任何一位开发者都应该对错误的概念了如指掌,前端开发者一定熟知网络应用程序运行时浏览器控制台中通知错误的红色文本警示。 错误术语和异常处理机制术语在编程中的应用屡见不鲜,但它们往往交替使用。笔者认为,...
  • 一、 .attr(attrName,function(index,oldValue){})中index值 我们都知道.attr()方法中通过返回值修改原属性函数中...这个概念很模糊,刚开始我以为是html文本流中index。但通过实验发现并不单纯是。下面

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,640
精华内容 8,656
关键字:

错误的概念