Причина, по которой я спрашиваю, заключается в том, что когда я использую Server.MapPath () по конкретному пути, он выдаст исключение
Выдает ли оно конкретное исключение для этого типа условия или оно генерирует общее? Если исключение относится к условию, что входной путь был конкретным, я бы поймал это конкретное исключение в вашем коде. Даже если это общее исключение, я все равно поймал бы это исключение, вы не сможете декодировать, если оно было выброшено, потому что путь ввода был виртуальным, но вы можете, по крайней мере, написать собственное сообщение об исключении, включая уведомление о том, что оно может быть вызвано виртуальным входным путем.
Я полагаю, что это наименее подверженное ошибкам решение, потому что вы полагаетесь на реализацию Server.MapPath () для определения условий, при которых он не работает, вместо того, чтобы пытаться создать избыточную оболочку, которая пытается сделать то же самое. В будущем функциональность MapPath () может измениться, и он может фактически начать поддерживать виртуальные пути, тогда было бы глупо иметь код, чтобы фактически предотвратить такое использование.