The Standard says (5.3.5p7):
If the value of the operand of the delete-expression is not a null pointer value, the delete-expression will call a deallocation function. Otherwise, it is unspecified whether the deallocation function will be called. [ Note: The deallocation function is called regardless of whether the destructor for the object or some element of the array throws an exception. — end note ]
The note answers your question.