从Python中的标准库组件中获取异常消息的最佳方法是什么?
我注意到在某些情况下你可以通过message字段得到它:
try:
pass
except Exception as ex:
print(ex.message)
Run Code Online (Sandbox Code Playgroud)
但在某些情况下(例如,在套接字错误的情况下)你必须做这样的事情:
try:
pass
except socket.error as ex:
print(ex)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何标准方法可以涵盖大部分情况?
我可以通过NSURLSessionSwift 以某种方式执行同步HTTP请求吗?
我可以通过以下代码执行异步请求:
if let url = NSURL(string: "https://2ch.hk/b/threads.json") {
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {
(data, response, error) in
var jsonError: NSError?
let jsonDict = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &jsonError) as [String: AnyObject]
if jsonError != nil {
return
}
// ...
}
task.resume()
}
Run Code Online (Sandbox Code Playgroud)
但同步请求怎么样?
提前致谢.
是json.loads从Python的标准json模块容易执行任意代码或其他任何安全问题?
我的应用程序可以从不可信赖的来源接收JSON消息.
是否可以通过const引用返回默认参数的值,如以下示例所示:
https://coliru.stacked-crooked.com/a/ff76e060a007723b
#include <string>
const std::string& foo(const std::string& s = std::string(""))
{
return s;
}
int main()
{
const std::string& s1 = foo();
std::string s2 = foo();
const std::string& s3 = foo("s");
std::string s4 = foo("s");
}
Run Code Online (Sandbox Code Playgroud) c++ object-lifetime language-lawyer default-arguments reference-binding
String在Swift中删除对象中特定字符后删除所有字符的更优雅的方法是什么?
假设我有以下字符串:
str.str
我需要从中删除".str".我该怎么做?
提前致谢.
看起来我们可以安全地std::cout在具有静态存储持续时间的对象的构造函数中使用对象,如本问题中所述.
但是,我不完全确定在变量模板的情况下我们可以安全地使用它们:
#include <iostream>
template<class T>
T x = T{};
void foo()
{
class Test
{
public:
Test() { std::cout << "Test::Test\n"; }
};
Test t = x<Test>;
}
int main()
{
std::cout << "main\n";
}
Run Code Online (Sandbox Code Playgroud)
这段代码在clang(实例)崩溃,我不确定它是否是一个bug.
如果我们__func__在C(C99/C11)和C++中的函数外部使用预定义变量会发生什么?
#include <stdio.h>
const char* str = __func__;
int main(void)
{
printf("%s", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
gcc 4.7.2只发出警告(-Wall -W -pedantic启用)并且不打印任何内容.
标准没有明确说明任何事情:
ISO/IEC 14882:2011
8.4.1一般[dcl.fct.def.general]
8函数本地预定义变量
__func__定义为static const char __func__[] = "function-name";已提供表单定义,其中function-name是实现定义的字符串.未指定此变量的地址是否与程序中任何其他对象的地址不同.
ISO/IEC 9899:2011
6.4.2.2预定义标识符
1标识符
__func__应由翻译者隐式声明,如同紧接在每个函数定义的左大括号之后,声明static const char __func__[] = "function-name";出现,其中function-name是词法封闭函数的名称.
UB?错误?或者是其他东西?
什么的点std::ios_base::ate(比其他std::ios_base::app,例如)和std::ios_base::trunc(比其他std::ios_base::out,例如)?
我应该更喜欢写std::ios_base::smth而不是std::ios::smth?
为什么以下代码打印"0"作为输出?
#include <functional>
#include <iostream>
int main()
{
typedef void (*fp_t)();
fp_t fp = nullptr;
std::function<void()> f = fp;
std::cout << (f == nullptr) << '\n';
}
Run Code Online (Sandbox Code Playgroud)
我用gcc 4.7.2和MSVC-11.0测试了它.
我认为它应该打印"1",因为标准的以下引用:
ISO/IEC 14882:2011
20.8.11.2.1 function construct/copy/destroy [func.wrap.func.con]
template<class F> function(F f);
template<class F, class A> function(allocator_arg_t, const A& a, F f);...
8 后置条件:
!*this如果满足以下任何条件: -f是NULL函数指针.-f是NULL指向成员的指针.-F是函数类模板的实例,和!f
我应该真正使用thead,tbody而且tfoot每次我用一个时间标记table的标签?它是否需要标准?