Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 21359:e3711ce8133b v8.2.1230
patch 8.2.1230: Vim9: list index error not caught by try/catch
Commit: https://github.com/vim/vim/commit/68d130c618f363821761f231c4122a0b9b764b71
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jul 17 22:06:44 2020 +0200
patch 8.2.1230: Vim9: list index error not caught by try/catch
Problem: Vim9: list index error not caught by try/catch.
Solution: Do not bail out if an error is inside try/catch. (closes https://github.com/vim/vim/issues/6462)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 17 Jul 2020 22:15:04 +0200 |
parents | fb8c8fcb7b60 |
children | fca850f4d603 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -509,6 +509,43 @@ def Test_try_catch() add(l, '3') endtry # comment assert_equal(['1', 'wrong', '3'], l) + + let n: number + try + n = l[3] + catch /E684:/ + n = 99 + endtry + assert_equal(99, n) + + try + n = g:astring[3] + catch /E714:/ + n = 77 + endtry + assert_equal(77, n) + + try + n = l[g:astring] + catch /E39:/ + n = 77 + endtry + assert_equal(77, n) + + try + n = s:does_not_exist + catch /E121:/ + n = 121 + endtry + assert_equal(121, n) + + let d = #{one: 1} + try + n = d[g:astring] + catch /E716:/ + n = 222 + endtry + assert_equal(222, n) enddef def ThrowFromDef()