patch 8.2.2351: Vim9: error msg for "throw" in function called with "silent!"

Problem:    Vim9: error message for "throw" in function that was called with
            "silent!".
Solution:   Do not throw the exception when not caught or displayed.
            (closes #7672)
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 938fc2e..9c9c273 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2605,6 +2605,17 @@
 		break;
 
 	    case ISN_THROW:
+		if (ectx.ec_trystack.ga_len == 0 && trylevel == 0
+								&& emsg_silent)
+		{
+		    // throwing an exception while using "silent!" causes the
+		    // function to abort but not display an error.
+		    tv = STACK_TV_BOT(-1);
+		    clear_tv(tv);
+		    tv->v_type = VAR_NUMBER;
+		    tv->vval.v_number = 0;
+		    goto done;
+		}
 		--ectx.ec_stack.ga_len;
 		tv = STACK_TV_BOT(0);
 		if (tv->vval.v_string == NULL