code: public function handle() {
  
  		try {
  			if ($this->validate()) {
  				$result = $this->update();
  			}
  		} catch (\hypeJunction\Exceptions\ActionValidationException $ex) {
  			register_error(elgg_echo('prototyper:validate:error'));
  			forward(REFERER);
  		} catch (\IOException $ex) {
  			register_error(elgg_echo('prototyper:io:error', array($ex->getMessage())));
  			forward(REFERER);
  		} catch (\Exception $ex) {
  			register_error(elgg_echo('prototyper:handle:error', array($ex->getMessage())));
  			forward(REFERER);
  		}
  
  		if ($result) {
  			system_message(elgg_echo('prototyper:action:success'));
  			forward($this->entity->getURL());
  		} else {
  			register_error(elgg_echo('prototyper:action:error'));
  			forward(REFERER);
  		}
  	}
docs: Full action script
  Validates the input, updates the entity and forwards users with feedback
  @return void