try-catch in while-loop(python)

时间:2017-06-14 13:06:43

标签: python

while var == 1:
    test_url = 'https://testurl.com'
    get_response = requests.get(url=test_url)
    parsed_json = json.loads(get_response.text)
    test = requests.get('https://api.telegram.org/botid/' + 'sendMessage', params=dict(chat_id=str(0815), text="test"))
    ausgabe = json.loads(test.text)
    print(ausgabe['result']['text'])
    time.sleep(3)

我如何为此代码添加try-catch例程,每2天我在json.loads()的第4行得到一个错误,我无法重现它。我要做的是while循环是在一个“try:”块和一个catch块,只有在while循环内发生错误时才触发。另外,如果while循环没有因错误而停止,那将会很棒。我怎么能这样做非常感谢您的帮助。 (我在一周前开始编写python)

2 个答案:

答案 0 :(得分:2)

如果您只是想在第四行中捕获错误,那么"尝试除了"包裹第四行将捕获发生的错误。

while var == 1:
    test_url = 'https://testurl.com'
    get_response = requests.get(url=test_url)
    try:
        parsed_json = json.loads(get_response.text)
    except Exception as e:
        print(str(e))
        print('error data is {}',format(get_response.text))
    test = requests.get('https://api.telegram.org/botid/' + 'sendMessage', params=dict(chat_id=str(0815), text="test"))
    ausgabe = json.loads(test.text)
    print(ausgabe['result']['text'])
    time.sleep(3)

答案 1 :(得分:1)

你可以简单地

var requiredDirective = function() {
  return {
    restrict: 'A',
    require: '?ngModel',
    link: function(scope, elm, attr, ctrl) {
      if (!ctrl) return;
      attr.required = true; // force truthy in case we are on non input element

      ctrl.$validators.required = function(modelValue, viewValue) {
        return !attr.required || !ctrl.$isEmpty(viewValue);
      };

      attr.$observe('required', function() {
        ctrl.$validate();
      });
    }
  };
};