System errors affect the computer or its peripherals. For example, you might have written a program which needed access to a printer. If there is no printer present when you run the program the computer will produce a system error message. Sometimes a system error makes the computer stop working altogether and you will have to restart the computer. A sensible way of avoiding system errors is to write code to check that peripheral before any data is sent to it. Than the computer would warn by a simple message on the screen, like Printer is not ready or available.
Syntax errors are mistakes in the programming language (like typing prnit instead of print). Syntax errors cause the program to fail. Some translator programs won't accept any line that has syntax error. Some only report a syntax error when they run the program. Some languages also contain special commands such as debug, which will report structural errors in a program. The programming manual for the particular language you are using will give details of what each error message means.
Logic errors are much more difficult to detect than syntax errors. This is because a program containing logic errors will run, but it won't work properly. For example, you might write a program to clear the screen and then print Hello. Here is a code for this:
10// Message
20 PRINT 'Hello'
30 CLS
40 END.
The code has a logic error in it, but the syntax is right so it will run. You can get rid of logic errors from simple programs by hand-testing them or doing a 'dry run' which means working through each line of the program on paper to make sure it does what you want it to do. You should do this long before you type in the code.