I ran into two threading-related issues, where an exception is swallowed:
1. The page is not navigated to after the landing page, and to find out the problem I had to debug into every line of code (F11) until I reached the code that has the error (null reference) after this line, nothing happens, and the page isn't navigated to.
For the second issue: I had to run the entire page initialization in the main thread, using:
Device.BeginInvokeOnMainThread when I realized that the exception is being swallowed when not running in the main thread.
to make sure of this conclusion I wrote code in the view model in a test project, that raises null reference exception, but it did raise exception! (! because "isn't view model code a non-UI related work?").
so it seems there is a random switching between a UI thread and other threads.
so how can I handle these exceptions so I don't spend hours debugging and hating on myself and my work?