Bada IDE有代码完成和有意义的错误消息吗?
Does Bada IDE have code completion and meaningful error messages?
我正在尝试将Bada应用程序从1.2升级到2.0,没有Bada的经验。我有项目建设,可以在模拟器中运行它,但我得到了大量的警告,我不能点击文本框来获得一个键盘,并在模拟器中输入任何东西。
不幸的是,警告消息对我来说是完全神秘的,例如
SearchForm::SearchForm(void) :
给出警告消息"when initialized here"
在这里初始化时会发生什么?
此外,所有的TryCatch语句显示语法错误,我在互联网上没有找到任何东西似乎使它高兴:
result OnDraw()
{
result r = E_SUCCESS;
Canvas* readerCanvas = GetCanvasN();
TryCatch(E_SUCCESS == GetLastResult(), "Failed to get canvas: %S", GetErrorMessage(r));
if (readerCanvas)
{
Rectangle tempRect(0, 0, GetBounds().width, GetBounds().height);
Point tempPoint(0, 0);
r = readerCanvas->Copy(tempPoint, *iDrawingCanvas, tempRect);
TryCatch(E_SUCCESS == r, "Failed to copy canvas: %S", GetErrorMessage(r));
delete readerCanvas;
}
return r;
CATCH:
delete readerCanvas;
return r;
}
TryCatch行说"语句没有效果",如果我尝试编辑它以匹配我发现的示例,我会得到语法错误。
这是怎么回事?
似乎您试图通过完全脱离上下文且仅部分引用它们来超越您的IDE所假定的坏消息。让我来解释一下:
TryCatch
宏定义为TryCatch(condition, cleanup, message)
当条件计算为false时,这将转到CATCH。您可以这样考虑宏:
if (!condition)
{
goto CATCH;
}
例如,你可以这样使用:
void TryCatchDemo::UseTryCatch(void)
{
TryCatch(1==2, , "1 is NOT 2");
AppLog("This should not appear");
CATCH:
AppLog("Catch block");
}
现在,您的第二个参数是字符串字面值"Failed to get canvas: %S"
,毫不奇怪,当用作语句时没有效果:
"does nothing";
123; // just like this
所以编译器很友好地提醒你,你可能有别的想法。还要注意, statement has no effect
是而不是是语法错误。
"当这里初始化时"
了解你的语言!引号内的代码不是合法的c++开头: SearchForm::SearchForm(void) :
这充其量是构造函数定义的开始,缺少初始化列表和主体。在c++语言规范中,类成员是按照声明的顺序初始化的,而不是按照它们在初始化列表中出现的顺序。一个最小的例子:
struct X
{
int a, b;
X() : b(), a() {}
};
这会导致编译器警告:
/tmp/test.cpp|3 col 13| warning: ‘X::b’ will be initialized after [-Wreorder]
/tmp/test.cpp|3 col 10| warning: ‘int X::a’ [-Wreorder]
/tmp/test.cpp|4 col 6| warning: when initialized here [-Wreorder]
可以看到,不仅剪掉了代码,还剪掉了警告!如果您阅读整个消息和整个代码,修复将非常明显:
struct X
{
int a, b;
X() : a(), b() {}
};
奖励:如果您想知道为什么排序很重要,请考虑当您这样做时会发生什么:
struct X
{
int a, b;
X() : b(), a(b) {} // OOPS!
};
希望有帮助
使用宏
的格式字符串编辑我刚刚注意到:可能不支持在Try/Catch宏中使用格式字符串:
支持消息参数的每个宏实际上都支持格式字符串。格式字符串在支持它的系统上与printf 的格式字符串类似(bada不支持它)
相关文章:
- C++错误消息*成员参考.**初学者*
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- GCC 警告和 gcc 错误消息之间的区别
- 为 c++ cin 上的输入数无效生成错误消息
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 如何使用realsense摄像头调试ROS错误消息
- C++ 概念 - 需要括号中的概念会导致 2 条冲突的错误消息
- 编译器收到错误消息(textc.exe已停止)
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 使用 c++/WinRT Direct3D UWP Game DR 模板 Direct X11 的错误消息
- max_element() 给出非常奇怪的错误消息
- 不断收到错误消息,并非所有控制路径都返回值