You can lead some folks to knowledge, but you can not make them think.
The average person thinks he's above average!
For most folks, they don't know, what they don't know.
Good judgement comes from experience. Experience comes from bad judgement.
Procedure you wrote will be correct when you remove EXCEPTION keyword and terminate INSERT statement with a semi-colon (;). Regarding, of course, that the table name is 'TBL_MyTable' instead of 'MyTable'.
How to validate the input? Execute the procedure and check what was done. To execute it, issue such a statement at the SQL prompt:
SQL> execute sp_test (1, 'a string'); -- it will pass or fail; in both cases, you'll receive a message
SQL> select * from tbl_mytable;
Error handling is up to you - you should anticipate what might go wrong and why could the procedure code fail.