编译以下代码时:
void DoSomething(int Numbers[])
{
int SomeArray[] = Numbers;
}
Run Code Online (Sandbox Code Playgroud)
VS2005编译器抱怨错误C2440:'initializing':无法从'int []'转换为'int []'
我明白,它真的试图将指针强制转换为无法正常工作的数组.但是,如何向学习C++的人解释错误?
目前我在C中的自定义函数中返回-1,如果出现错误,0表示成功.例如,使用链表和某些功能需要非空列表才能正常工作.如果作为参数传递的列表为空,则返回-1(错误),如果它不为空则返回0并且函数没有问题.
我可能会返回1而不是-1吗?
这是用C做事的标准方式还是你推荐一种不同的方法?
Microsoft为Windows提供了一堆标准化的错误代码(http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx).如果适用,我发现它们可以在我自己的应用程序中引用,而不是创建自己的应用程序.是否有类似但特定于.NET的东西?
我知道可以使用web.xml中的配置提供自定义错误404页面,如下所示:
<error-page>
<error-code>404</error-code>
<location>/NotFound.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
但是,我预计许多错误代码网页将非常相似 - 只有错误代码和文本会发生变化.
为了减少过多的文件并重新使用,将参数传递给具有所有常用HTML和CSS优点的通用页面会很不错.
我使用Apache MyFaces,并阅读了ExceptionHandlerFactory(这里),但我发现没有错误代码的规定.
是否可以自定义错误代码页面的唯一方法是为每个我想要自定义的错误代码创建一个,并使用web.xml连接它们?:-(
将错误代码从枚举映射到字符串的更有效方法是什么?(在C++中)
例如,现在我正在做这样的事情:
std::string ErrorCodeToString(enum errorCode)
{
switch (errorCode)
{
case ERROR_ONE: return "ERROR_ONE";
case ERROR_TWO: return "ERROR_TWO";
...
default:
break;
}
return "UNKNOWN";
}
Run Code Online (Sandbox Code Playgroud)
如果我做这样的事情会以任何方式提高效率吗?:
#define ToStr( name ) # name;
std::string MapError(enum errorCode)
{
switch (errorCode)
{
case ERROR_ONE: return ToStr(ERROR_ONE);
case ERROR_TWO: return ToStr(ERROR_TWO);
...
default:
break;
}
return "UNKNOWN";
}
Run Code Online (Sandbox Code Playgroud)
也许有人对此有任何建议或想法?谢谢.
我有一个程序可以测试我提供的脚本/命令的错误代码。在某些情况下,命令行会返回一个我想忽略的警告错误代码(以 0 而不是 5 退出)。我希望其他错误代码也能传递相同的代码,并且尽可能简单(以保持单行命令)。
我尝试过使用pytest || [ $? -eq 5 ],它会忽略来自命令的错误代码 5,但会将所有非零错误代码替换为 1(而不是实际的错误代码)。
我想比我更有 bash 经验的人可以比我更快地提出更好的解决方案。
一些更具体的上下文:
我正在使用 pytest 来测试我的项目。其中一些目前没有测试,pytest 的默认行为是将其视为错误(错误代码 5)。我想把这个错误视为成功。事实上,我希望特拉维斯能把这个错误当作成功来威胁。
谢谢!
我试图确定为什么网络服务器响应最初在处理过程中抛出异常;然后客户端返回200 OK。详情如下所示:
请求从 Web 应用程序发送到 Web 服务器,如果发生错误,则会捕获异常并返回相关代码和/或消息,如下所示:
public void dispatchRequest(HttpServletRequest req, HttpServletResponse
res)
{
if (method.equalsIgnoreCase("get")) {
doGet(req, res);
} else {
res.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);
return;
}
}
void doGet(HttpServletRequest request, HttpServletResponse response)
throws
IOException,
HTTPServerException {
handleGetClient(request, response);
}
@SuppressWarnings("unchecked")
private void handleGetClient(HttpServletRequest request,
HttpServletResponse
response)
throws IOException, HTTPServerException {
...
} catch (IOException e) {
logger("I/O Error during playback with parameters (additional
parameters logged) {0}: {1}",traceParams,e.toString());
logger(Level.FINER, "I/O Error during playback with parameters {0}:
{1}", parameters, e.getMessage());
logger(Level.FINER, "I/O Error …Run Code Online (Sandbox Code Playgroud)我使用C++ 11,boost :: asio和HDF5编写了一个C++服务器/客户端对.服务器运行正常一段时间(2天),然后它停止了代码137.因为我执行了无限循环的服务器,它重新启动.
不幸的是,我的错误日志没有提供足够的信息来理解问题.所以我一直试图理解这段代码的含义.似乎已达成共识,这意味着它是一个错误128+9,9意味着程序被杀死了kill -9.现在我不确定为什么会发生这种情况.我需要帮助才能找到答案.
通过进一步阅读,我发现它可能已被系统杀死,因为它超过了某个允许的执行时间,因此系统将其杀死.现在这不太可能,因为我的linux服务器是由我的大学提供的,所以他们可以应用某种安全性来做到这一点.我读到了timeoutlinux中所谓的内容.我的第一个问题是:我怎么知道这是否是问题的原因?
我的第二个问题是:我应该检查什么才能理解这个问题?你会怎么做?请指教.
如果您需要任何其他信息,请询问.
谢谢.
我找不到任何查找所有svn错误代码的地方? - 我只是手动谷歌'svn E200005'.某处不应该有详尽的清单吗?
我编写了一个Java Card小程序,它将一些数据保存在偏移量的APDU缓冲区中ISO7816.OFFSET_CDATA,并将这些字节作为响应发送.
Util.arrayCopy(Input_Data, (short)0, buffer, (short) ISO7816.OFFSET_CDATA, (short)Datalength);
apdu.setOutgoing();
apdu.setOutgoingLength((short)(DataLength) );
apdu.sendBytesLong(buffer, ISO7816.OFFSET_CDATA, (short)(DataLength));
Run Code Online (Sandbox Code Playgroud)
我在模拟器中测试了这个没有任何问题.但是当我在一张真正的智能卡(由金雅拓制造的Java Card v2.2.1)上进行测试时,我将状态字0x6180作为响应.
我的命令APDU是00 40 00 00 80 Data,其中数据长度为128字节,因此缓冲区中有4 + 128字节,(260-(4 + 128))字节为空.
error-code ×10
c++ ×3
.net ×1
apdu ×1
arrays ×1
bash ×1
boost-asio ×1
c ×1
exit-code ×1
httprequest ×1
httpresponse ×1
java ×1
javacard ×1
jsf ×1
linux ×1
pointers ×1
protocols ×1
return-value ×1
servlets ×1
smartcard ×1
string ×1
svn ×1
web.xml ×1
windows ×1