Short answer - Yes.
Long Answer - Not always, but quite often. I usually use assertions for errors I know I can do nothing about(while the program is running) and logging isn't really required. For example - If I have to check if a certain value is out of bounds or if a pointer is NULL even though it should have some value.
For other stuff like "Parsing files" and "File couldn't be found", I usually throw exceptions. That way I can log the error and use some fail safe file/method instead.
And I quite agree with with Falaina, you really should make it a point to notice - "HEY! I'm making some assumptions here"