0 0

Bug还是异常?!return未能跳出方法代码块0

今天调试遇到一个诡异的问题:
Eclipse SDK 4.0
Android项目

执行了下面的方法,调试的时候却return null.导致异常。请看方法代码和调试截图
	public String getSIsc() {
		if (SIsc==null) {
			return defaultStr;
		}
		return this.SIsc;
	}


执行该方法时this.SIsc=null.
代码执行进入if块,执行了return defaultStr;
但是继续执行却并未跳出该方法,而是继续执行return this.SIsc;。
请问大家这是什么问题?
2013年8月09日 16:24
  • 大小: 17.2 KB

7个答案 按时间排序 按投票排序

0 0

debug的时候,需要保证这个类的逻辑和你部署的.class文件逻辑, 很显然你这个if是后面加上去的, 把这个类的.class重新发布下, 如果没有热部署的话 还需要重启之后才能debug了...

2013年8月12日 10:58
0 0

直觉告诉我,应该是eclipse中的代码和编译之后的代码不一致造成的,重新编译下应该就可以了

2013年8月11日 18:49
0 0

可能有两个原因:
1,两个SIsc根本不是同一个变量;
2,是同一个个变量,但被并发修改。

2013年8月10日 10:23
0 0

没有问题啊

2013年8月10日 09:26
0 0

	public String getSIsc() {
		if (SIsc==null) {
			return defaultStr;
		}
		return this.SIsc;
	}

反正我看了你的图片第一个SIsc没有蓝色,这个就看不懂了。

2013年8月09日 18:56
0 0

重新启动ide,然后把项目再重新发布一次

2013年8月09日 17:51
0 0

把这个方法单独保存为一个java文件,在dos命令行下编译运行,看走哪个,如果dos命令行下运行正常,说明你的ide工具出问题了。

2013年8月09日 16:38

相关推荐

    Java软件工程师面试宝典

    finally用于异常处理,表示一定会执行的代码块;finalize是Object类的一个方法,在垃圾收集器执行时会调用finalize()进行清理资源。 41. 运行时异常与一般异常的异同? 运行时异常是编译时不需要强制处理的异常,而...

    vc实现程序崩溃时弹出个自定义的对话框.仿QQ崩溃了会出一个对话框提示程序错误bug上报

    当程序遇到异常时,catch块可以捕获异常并执行相应的错误处理代码。 接下来,创建自定义错误报告对话框。这通常涉及到使用MFC(Microsoft Foundation Classes)库,它提供了丰富的用户界面组件。你需要创建一个新的...

    你必须知道的495个C语言问题

    4.5 我有一个char*型指针碰巧指向一些int型变量,我想跳过它们。为什么((int*)p)++;这样的代码不行? 4.6 为什么不能对void*指针进行算术操作? 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了...

    C语言FAQ 常见问题列表

    o 5.3 我有一个 char * 型指针正巧指向一些 int 型变量, 我想跳过它们。为什么如下的代码 ((int *)p)++; 不行? o 5.4 我有个函数,它应该接受并初始化一个指针 void f(int *ip) { static int dummy = 5; ip = &...

    面试Java程序员最可能遇到的问题考试大全

    finally确保代码块中的代码总会被执行;finalize是对象被垃圾收集前执行的方法。 11. **Overload和Override的区别**:Overload是方法重载,同一类中方法名相同但参数列表不同;Override是方法重写,子类中方法名、...

    《你必须知道的495个C语言问题》

    4.5 我有一个char *型指针碰巧指向一些int型变量,我想跳过它们。为什么((int *)p)++; 这样的代码不行? 47 4.6 为什么不能对void *指针进行算术操作? 47 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示...

    你必须知道的495个C语言问题(PDF)

    4.3 我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行? . . . . . . . . . . . . . . 17 4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static ...

    java英文单词

    4. `return`:从方法中返回值或结束方法执行。 封装: 1. `encapsulation`:面向对象的四大特性之一,隐藏对象的内部细节。 2. `null`:表示无值或对象未初始化。 3. `initial`:初始化,给对象或变量赋初值。 ...

    java的单词

    18. **if** 和 **else**:条件语句,`if`用于检查条件,`else`用于当条件不满足时执行的代码块。 19. **case**、**default** 和 **switch**:构成`switch`语句,用于多分支选择。 20. **break**:用于跳出循环或`...

    JAVA常用英语单词.pdf

    45. **return** - 从方法中返回一个值或结束方法执行。 46. **array** - 用于存储多个相同类型元素的数据结构。 47. **length** - 数组或字符串的长度,即包含的元素数量。 48. **sort** - 对数组或其他集合进行排序...

    Java基础英语.docx

    `else`与`if`配合使用,用于定义当`if`条件不满足时执行的代码块。 **Switch [switʃ]**:判断语句。`switch`语句允许基于一个表达式的值执行不同的代码块。 **Case [keis]**:实例,情况。`case`标签用于定义`...

    (完整版)Java基础英语单词表.doc

    63. **Function** - 函数:与方法类似,是可重用的代码块。 64. **Document** - 文档:可以指HTML文档或其他形式的文件。 65. **Submit** - 提交:在表单中,用户点击提交按钮将数据发送给服务器。 66. **alert**...

    JAVA常用英语单词

    - **else**:与`if`语句结合使用,当`if`语句中的条件不满足时执行的代码块。 - **simple**:这里可能是指简化版的概念,但在Java中一般不作为关键字使用。 ### 第四章:选择结构 - **case**:在`switch`语句中...

    grub4dos-V0.4.6a-2017-02-04更新

    1.ext4 分区支持 64 位功能,支持元块组。 2.grldr头部、grldr.mbr 支持搜索 gpt 分区的 grldr。 3.修正了 bootlace。 2014-08-17 1.修正GPT unhide/hide的BUG,现在可以正常对gpt分区进行隐藏. 2.优化GPT分区...

    Linux C编程一站式学习 pdf

    - **break和continue语句**: break跳出循环,continue跳过本次循环剩余部分。 - **嵌套循环**: 在一个循环内部包含另一个循环。 - **goto语句**: 直接跳转到程序中的指定位置。 **1.7 结构体** - **复合数据类型**:...

    (word完整版)Java基础英语单词表.doc

    40. **return** - 从方法中返回值,结束方法执行。 41. **object** - 对象是类的实例,包含数据和行为。 42. **null** - 代表无值或空引用。 43. **encapsulation** - 面向对象编程的四大特性之一,将数据和方法绑定...

    Java初学者基础英语单词表

    28. **switch**: 开关,用于根据不同条件执行不同代码块。 29. **break**: 突破,用于跳出循环或switch语句。 30. **while**: 当...的时候,循环结构的一部分。 31. **index**: 索引,用于访问数组或集合中的元素。 ...

    java学习之英文词汇

    27. **Default**: 默认,switch语句中如果没有匹配到任何case,则执行的代码块。 28. **Switch**: 开关,选择语句的关键字。 29. **Break**: 打破,跳出当前循环或switch语句。 30. **While**: 当……的时候,循环...

    北大青鸟ACCP5.0计算机单词汇总

    - **default 默认**:在没有其他匹配项时执行的代码块。 - **switch 开关,电闸**:多条件选择语句。 **扩展单词** - **break 打破,突变**:跳出循环或 switch 语句。 - **continue 继续**:跳过循环体中的剩余语句...

Global site tag (gtag.js) - Google Analytics