In tatsächlichen Projekten lösen die Geschäftslogikschicht und die Serviceschicht nur Ausnahmen aus, verarbeiten diese jedoch nicht.
Ausnahmen abfangen und in der Präsentationsschicht behandeln (Protokollierung oder so)?
Es scheint, dass dies nicht zutrifft, wenn das Front- und Back-End getrennt sind und die Ausnahmeerfassung dort erfasst werden muss, wo der Dienst oder die Logik aufgerufen wird. Ist das so?
Wie sieht die Ausnahmebehandlung in Ihren tatsächlichen Projekten aus? Bitte geben Sie mir ein paar Hinweise! ! ! ! !
服务层会做日志记录,一般来说异常抛出由表现层捕获,但也会在服务层先捕获做日志再抛出
首先需要明确一个理念:异常是抛给程序员的,而不是抛给用户的。
明确了这个理念之后就好理解了,为什么需要在表现层处理异常——因为表现层是程序员和用户之间的最后一道屏障,必须把异常包装得漂漂亮亮的丢给客户,也就是所谓的用户体验。
然而,表现层绝对不是唯一要处理异常的地方,你所说的那些地方,包括底层、服务器……都需要适当的处理异常。
比如说,服务端提供的接口,一般要考虑调用者的体验,所以不会直接抛异常出来,而是需要进行一定的封装,同时在服务端记录异常信息以便查错。
当然为了简化和统一处理过程,通常会集中在某些层次,包括表现层对异常进行处理。