public function handle_component_failure($e, $component, $interface, $methodname, array $params) {
        // Get the list of the site Data Protection Officers.
        $dpos = api::get_site_dpos();

        $messagesubject = get_string('exceptionnotificationsubject', 'tool_dataprivacy');
        $a = (object)[
            'fullmethodname' => \core_privacy\manager::get_provider_classname_for_component($component) . '::' . $methodname,
            'component' => $component,
            'message' => $e->getMessage(),
            'backtrace' => $e->getTraceAsString()
        ];
        $messagebody = get_string('exceptionnotificationbody', 'tool_dataprivacy', $a);

        // Email the data request to the Data Protection Officer(s)/Admin(s).
        foreach ($dpos as $dpo) {
            $message = new \core\message\message();
            $message->courseid          = SITEID;
            $message->component         = 'tool_dataprivacy';
            $message->name              = 'notifyexceptions';
            $message->userfrom          = \core_user::get_noreply_user();
            $message->subject           = $messagesubject;
            $message->fullmessageformat = FORMAT_HTML;
            $message->notification      = 1;
            $message->userto            = $dpo;
            $message->fullmessagehtml   = $messagebody;
            $message->fullmessage       = html_to_text($messagebody);

            // Send message.
            message_send($message);
        }
    }
public function handle_component_failure($e, $component, $interface, $methodname, array $params) {
        // Get the list of the site Data Protection Officers.
        $dpos = api::get_site_dpos();

        $messagesubject = get_string('exceptionnotificationsubject', 'tool_dataprivacy');
        $a = (object)[
            'fullmethodname' => \core_privacy\manager::get_provider_classname_for_component($component) . '::' . $methodname,
            'component' => $component,
            'message' => $e->getMessage(),
            'backtrace' => $e->getTraceAsString()
        ];
        $messagebody = get_string('exceptionnotificationbody', 'tool_dataprivacy', $a);

        // Email the data request to the Data Protection Officer(s)/Admin(s).
        foreach ($dpos as $dpo) {
            $message = new \core\message\message();
            $message->courseid          = SITEID;
            $message->component         = 'tool_dataprivacy';
            $message->name              = 'notifyexceptions';
            $message->userfrom          = \core_user::get_noreply_user();
            $message->subject           = $messagesubject;
            $message->fullmessageformat = FORMAT_HTML;
            $message->notification      = 1;
            $message->userto            = $dpo;
            $message->fullmessagehtml   = $messagebody;
            $message->fullmessage       = html_to_text($messagebody);

            // Send message.
            message_send($message);
        }
    }
public function handle_component_failure ( $ e , $ component , $ interface , $ methodname , array $ params ) { // Get the list of the site Data Protection Officers. $ dpos = api :: get_site_dpos ( ) ; $ messagesubject = get_string ( 'exceptionnotificationsubject' , 'tool_dataprivacy' ) ; $ a = ( object ) [ 'fullmethodname' => \ core_privacy \ manager :: get_provider_classname_for_component ( $ component ) . '::' . $ methodname , 'component' => $ component , 'message' => $ e -> getMessage ( ) , 'backtrace' => $ e -> getTraceAsString ( ) ] ; $ messagebody = get_string ( 'exceptionnotificationbody' , 'tool_dataprivacy' , $ a ) ; // Email the data request to the Data Protection Officer(s)/Admin(s). foreach ( $ dpos as $ dpo ) { $ message = new \ core \ message \ message ( ) ; $ message -> courseid = SITEID ; $ message -> component = 'tool_dataprivacy' ; $ message -> name = 'notifyexceptions' ; $ message -> userfrom = \ core_user :: get_noreply_user ( ) ; $ message -> subject = $ messagesubject ; $ message -> fullmessageformat = FORMAT_HTML ; $ message -> notification = 1 ; $ message -> userto = $ dpo ; $ message -> fullmessagehtml = $ messagebody ; $ message -> fullmessage = html_to_text ( $ messagebody ) ; // Send message. message_send ( $ message ) ; } }
Notifies all DPOs that an exception occurred.

@param \Throwable $e
@param string $component
@param string $interface
@param string $methodname
@param array $params
Notifies all DPOs that an exception occurred .