标签: try-except

将除了EXCEPTION_STACK_OVERFLOW之外的VC++的__try/__移植到MinGW

我试图使用VC++的try-except语句将一些代码移植到MinGW:

bool success = true;

__try {
    //...
} __except ((EXCEPTION_STACK_OVERFLOW == GetExceptionCode())
            ? EXCEPTION_EXECUTE_HANDLER
            : EXCEPTION_CONTINUE_SEARCH) {
    success = false;
    _resetstkoflw();
}
return success;
Run Code Online (Sandbox Code Playgroud)

是否可以编写使用MinGW g ++捕获堆栈溢出异常的代码?

c++ mingw visual-c++ try-except

7
推荐指数
2
解决办法
6029
查看次数

用 `try except` 尝试两个表达式

我有两个表达。我需要尝试一个表达式,如果它引发异常尝试另一个,但如果第二个也引发异常 - 引发异常。

我试过这个,但它看起来很丑,我不确定这是解决这个问题的最佳方法:

try:                                                           
    image = self.images.order_by(func.random()).limit(1)       
except:                                                        
    try:                                                       
        image = self.images.order_by(func.rand()).limit(1)     
    except ProgrammingError:                                   
        raise ProgrammingError(                                
            'The database engine must be PostgtreSQL or MySQL')
Run Code Online (Sandbox Code Playgroud)

你怎么做呢?

python sqlalchemy try-except

7
推荐指数
2
解决办法
7898
查看次数

为什么此python键盘中断不起作用?(在pycharm中)

在pycharm中调试代码时,按Ctrl + C时,我的python try / except循环似乎不会触发键盘中断。我的代码如下所示:

numbers = []
loop = True

try: 
    # ===========SUBROUTINES==================

    def help():
        print("To view the list type 'view'"
              "\n To add an item type 'add'"
              "\n To remove an item type 'remove'"
              "\n To exit type exit or Ctrl + c can be used at any time")

    # =========SUBROUTENES END===============


    while loop:
        task = input("What do you want to do? Type \"help\" for help:- ")
        if task == 'help':
            help()
        else:
            print("Invalid return please try …
Run Code Online (Sandbox Code Playgroud)

python keyboardinterrupt pycharm try-except

7
推荐指数
3
解决办法
1万
查看次数

在 try / except 中捕获特定的错误消息

我是 python 的新手,我即将制作这个新程序,它会问你生日。我做了一些 try/except 子句来避免人们以字符串或高数字输入信息。我希望我的程序找出输入的信息最终是否等于日期。如果是,我希望将其打印出来,如果没有,我希望它找出用户输入的哪一部分是错误的。因此,我在最后一个 except 子句中创建了一些 if 子句,其想法是错误将等于一条消息。

我想知道是否有可能让程序将消息与错误进行匹配,以找出具体的错误并找出输入的哪一部分是错误的。

我的代码如下所示:

try: 
    print(datetime.date(int(birthYear), int(birthMonth), int(birthDay)))
except TypeError:
    if ValueError == "ValueError: month must be in 1..12": 
        print("Month " + str(birthMonth) + " is out of range. The month must be a number in 1...12")
    if ValueError == "ValueError: year " + str(birthYear) + " is out of range": 
        print("Year " + str(birthMonth) + " is out of range. The year must be a number in " + str(datetime.MINYEAR) + "..." …
Run Code Online (Sandbox Code Playgroud)

python datetime if-statement python-3.x try-except

7
推荐指数
1
解决办法
4239
查看次数

为什么在明显"安全"的代码中使用异常处理?

请问,有人可以解释一下,在这段代码中会出现什么异常?

function CreateBibleNames: TStrings;
begin
  Result := TStringList.Create;
  try
    Result.Add('Adam');
    Result.Add('Eva');
    Result.Add('Kain');
    Result.Add('Abel');
  except
    Result.Free;
    raise;
  end;      
end;
Run Code Online (Sandbox Code Playgroud)

因为我使用delphi,所以我曾经使用过一次异常处理.我认为上面的代码是由熟练的程序员编写的,我不认为异常是多余的.但是,在这个概念中使用异常处理对我来说仍然是一个谜.它似乎是一个安全的代码(没有尝试除了结束).我已经多次看到类似这样的代码片段,这就是为什么尽管有我的经验,这可能是一个很好的理由以这种方式编写,但这并不是必要的.

此外,当事情失败时,我会得到异常描述......

感谢名单

delphi try-except

6
推荐指数
3
解决办法
747
查看次数

为什么除了没有捕获此错误?

我有一个模拟骰子卷的程序,并将它们与图表中的值(字符串列表集)进行比较.我目前从TEdit获得价值.如果该框为空,则会引发应该由我的Try/Except语句捕获的EConvertError,但事实并非如此.想法和建议?代码如下,Delphi 7.

try
  //Shooting
  if ShootingRadio.Checked then
    BS := StrToInt(Edit1.Text);
  Randomize;
  Roll := RandomRange(1,7);
  Label3.Caption := IntToStr(Roll);
  if (Roll < StrToInt(ShootingHitChart[BS-1])) then
  begin
    Label3.Caption := (IntToStr(Roll)+' Miss');
    RichView1.AddTextNL((IntToStr(Roll)+' Miss'),7,0,1);
    RichView1.Reformat;
  end
  else
  begin
    Label3.Caption := (IntToStr(Roll)+' Hit');
    RichView1.AddTextNL((IntToStr(Roll)+' Hit'),6,0,1);
    RichView1.Reformat;
  end;
except
    MessageBox(0,'No number entered.','Error',mb_OK);
end;
Run Code Online (Sandbox Code Playgroud)

delphi uncaught-exception try-except

6
推荐指数
1
解决办法
3113
查看次数

非常简单的代码,并得到错误C2712,无法理解为什么

我有一段时间的麻烦error C2712: Cannot use __try in functions that require object unwinding,在缩小问题之后,我留下了一个非常非常简单的代码,我无法理解为什么它会导致这个错误.我在Windows下使用Visual Studio.

我用/ EHa编译(我不使用/ EHsc)

我使用__try/__except和不使用的原因try/catch是因为我想捕获所有错误,并且不希望程序在任何情况下崩溃,包括例如除以0,try-catch不会捕获.

#include <string>
static struct myStruct
{
    static std::string foo() {return "abc";}
};

int main ()
{
    myStruct::foo();

    __try 
    { }
    __except (true)
    { }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

error C2712: Cannot use __try in functions that require object unwinding
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio try-except

6
推荐指数
1
解决办法
8470
查看次数

检查特定元素列表的更好方法 - python

我使用try/except块作为替代if/elif,有一堆ands.我正在寻找一个列表,并替换一些元素,如果它有x和x和x等.在我的项目中,我必须检查6个东西,这些吸引我使用try/exceptwith .index()将导致错误,如果元素isn不存在.

类比看起来像这样:

colors = ['red', 'blue', 'yellow', 'orange']

try:
    red_index = colors.index('red')
    blue_index = colors.index('blue')
    colors[red_index] = 'pink'
    colors[blue_index] = 'light blue'
except ValueError:
    pass
try:
    yellow_index = colors.index('yellow')
    purple_index = colors.index('purple')
    colors[yellow_index] = 'amarillo'
    colors[purple_index] = 'lavender'
except ValueError:
    pass
Run Code Online (Sandbox Code Playgroud)

因此,如果colors数组不包含'purple'还有'yellow',我不希望阵列,以改变.

我对这种方法有点警惕,因为它似乎是滥用try/except.但是它比替代方案要短得多,因为index无论如何我都必须抓住元素,所以我想知道这是否存在明显的问题,或者这是否足够疯狂以至于其他开发人员会讨厌它.

python if-statement try-except

6
推荐指数
1
解决办法
123
查看次数

在python中放置异常处理的位置

在Python中使用try/except块时,是否建议将其委托给可能引发异常的任何方法,或者在父函数中捕获它,或者两者兼而有之?

例如,以下哪项是首选?

def my_function():
    s = something.that.might.go_wrong()
    return s

def main():
    try:
        s = my_function()
    except Exception:
        print "Error"
Run Code Online (Sandbox Code Playgroud)

要么

def my_function():
    try:
        s = something.that.might.go_wrong()
        return s
    except Exception:
        print "Error"

def main():
    s = my_function()
Run Code Online (Sandbox Code Playgroud)

PEP 8在这个问题上似乎很安静,我似乎找到了两个案例的例子.

python pep8 try-except

6
推荐指数
1
解决办法
957
查看次数

无法使用 try except 捕获 requests.exceptions.ConnectionError

感觉我正在慢慢失去理智。我无法捕获 REST-API 请求中的连接错误。我在 stackoverflow 上阅读了至少 20 个类似的问题,尝试了我能想到的所有可能的 except 语句,并尽可能简化了代码以排除某些其他库。

我正在使用 Python 3.7 和请求 2.25.1。这是对我自己的服务器上的 API 的非常基本的调用,有时会失败,但只是偶尔失败一次:

try:
    response = requests.get(url, headers=api_headers, auth=HTTPBasicAuth(username, password))
except requests.exceptions.ConnectionError:
     print("Connection error!")
     
Run Code Online (Sandbox Code Playgroud)

很抱歉,我无法提供完整的工作示例,因为我没有连接到可公开访问的 API,因此我必须删除 url、用户名和密码。

即使我尝试捕获连接错误,脚本也会失败并显示以下回溯:

Traceback (most recent call last):
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 706, in urlopen
    chunked=chunked,
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 382, in _make_request
    self._validate_conn(conn)
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 1010, in _validate_conn
    conn.connect()
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 421, in connect
    tls_in_tls=tls_in_tls,
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\ssl_.py", line 429, in ssl_wrap_socket
    sock, context, tls_in_tls, server_hostname=server_hostname
  File "C:\Users\Tilman\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\ssl_.py", line 472, in _ssl_wrap_socket_impl …
Run Code Online (Sandbox Code Playgroud)

python python-3.x try-except python-requests

6
推荐指数
1
解决办法
1723
查看次数