草庐IT

try-catch-rethrow

全部标签

包含 return 的 C++ 宏表达式(就像 Rust 的 try!)

Rust有一个宏,它是一个表达式,可以计算出某个值,或者从函数返回。有没有办法在C++中做到这一点?像这样:structResult{boolok;intvalue;}Resultfoo(){...}#defineTRY(x)(auto&ref=(x),ref.ok?ref.value:return-1)intmain(){inti=TRY(foo());}不幸的是,它不起作用,因为return是一个语句而不是表达式。上面的代码还有其他问题,但它大致说明了我想要什么。有没有人有什么好主意? 最佳答案 感谢NathanOliver的l

c++ - 如果异常保存在 std::exception_ptr 中,那么在 catch 语句之外使用异常是否安全?

我有一个std::exception_ptr里面有一个异常。我将调用std::rethrow_exception来获取实际的异常,异常在catch语句之后是否有效?我的猜测是因为我仍然持有std::exception_ptr它仍然有效。看例子:std::exception_ptrePtr=initialize_somewhere_else();std::runtime_error*a=NULL;try{std::rethrow_exception(ePtr);}catch(std::runtime_error&e){a=&e;}std::coutwhat()注意:在我使用Clang的测

c++ - try 和 catch 中的对象声明未在范围内定义

我想像这样在try/catch语句中声明一个对象:try{Objectobject(value);}catch(exception){return1;}object.usingExemple();G++告诉我对象没有在范围内定义。我明白如果try接收到一个异常对象,则不会创建并且无法使用。但是g++难道不应该知道我在函数发生时离开了吗?如何在不使用new的情况下声明一个在构造函数中抛出异常的对象?提前致谢:) 最佳答案 简单:如果您的代码使用object取决于它的创建而不引发异常(确实如此,因为如果发生异常则对象不可用),那么它包含

c++ - 警告 C4673 : throwing 'ex::traced_error<EX>' the following types will not be considered at the catch site

MSVC10和MSVC9在编译我的异常框架时都生成了4级警告消息,尽管程序的行为似乎是正确的。异常框架相当庞大和复杂,但我已经设法将其归结为它的本质。这是一个完整的程序,您可以在VS10中编译和运行#include#include#include#include#includeusingnamespacestd;namespaceex{classgeneric_error:virtualpublicstd::exception{public:generic_error(intthread_id):thread_id_(thread_id){}constchar*what()constt

C++ 异常 :Throwing Arrays and getting array size in catch

普通函数(例如printArray)采用数组及其大小(2个参数)来打印数组元素。如何使用异常来做同样的事情?更确切地说,如何将数组大小传递给catch处理程序?(假设我没有在try-catch之外声明的constintSIZE)例如。//voidprintArray(int*foo,intsize);intfoo[]={16,2,77,40,12071};//printArray(foo,5);//OK,functioncallusingarrayacceptssize=5try{//dosomethingthrowfoo;}catch(int*pa){//Ihavetogetarra

ios - 是否有删除 pod try 创建的文件的命令

podtry在尝试库时非常有用。使用完示例后,我想删除创建的文件。例如使用后podtryRxSwift我必须手动删除这个文件夹/private/var/folders/nq/vc7lyxms2z589w3pr239dt700000gn/T/CocoaPods/Try/RxSwift/有没有pod命令删除podtry创建的文件? 最佳答案 一般来说,删除antyhng/private/var/folders是安全的,因为该位置用于临时数据。您不必手动从该文件夹中删除内容,因为如果存在任何可用空间问题,操作系统通常会“收集垃圾”。如果您

iphone - Objective-C : getting error on console while trying to display app on ipad device?

我试图在我的iPad上显示我的iphone/Ipad应用程序但出现此错误,我之前在设备上检查过此应用程序但现在它在控制台上显示错误。**warning:Unabletoreadsymbolsfor/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/usr/lib/info/dns.so(filenotfound).****无法向引导服务器注册com.domainname.abcdef。错误:未知错误代码。这通常意味着此进程的另一个实例已经在运行或卡在调试器中。程序收到信号:“SIGABRT”

ios - Q :Get rows count by indexPath of tableView comes `Trying to put the stack in unreadable memory at:` error

在我的tableView委托(delegate)方法中:我在tableViewdelegate方法中得到了numberOfRows和numberOfSections:-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath和-(CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath,但是在-(NSInteger)tableView

ios - 根据用于 iOS 6 的地址簿使用文档,Catch 22

根据iOS6的文档,地址簿应该使用ABAddressBookCreateWithOptions创建。它还表示,如果调用者无权访问数据库,则此方法将返回null。但是,通过调用ABAddressBookRequestAccessWithCompletion来请求访问,它以ABAddressBookRef作为参数。因此根据文档,如果您没有访问权限,您首先无法获得ABAddressBookRef,但要获得访问权限,您必须将ABAddressBookRef作为参数传递。嗯。catch22?那么如何创建ABAddressBookRef呢?一直在谷歌搜索一些示例/教程代码,但没有找到。TIA

ios - "Application tried to present modally an active controller"尽管设置了各种安全防护措施

当我的Controller尝试呈现模态UIImagePickerController时,我偶尔会收到此异常(大约20%的次数)。我已经在SO上对这个主题进行了相当多的研究,并遵循了similar的说明。questions关于放置各种保障措施的主题。虽然这能够减少我遇到此错误的频率,但我仍然收到它并且不确定我可以做些什么来防止它发生。我的设置如下:我的根Controller是一个标签栏Controller,然后我在其中嵌入了一个导航Controller。在这个导航Controller中,我有TakePhoto1Controller,当有人想要拍照时,我会模态地显示我的ImagePicke