It seems as though the issue here is not that your players were upset by the fact that their characters died, it's that your players were upset by the fact that their characters died even though they wanted to play a "dark, rough, and dangerous" game in which their characters were at risk of dying.
Sometimes, people just get upset.
Psychology is an odd thing. Humans are interestingly able to want something very badly and then be unhappier once they get it. For many people, having your characters die, be wounded, lose equipment, or fail to complete their objectives is upsetting. It's unenjoyable. It makes them angry or frustrated in the same way that losing at a competitive sport can make people angry or frustrated. Defeat is not always an easy thing to take gracefully.
Personally, I recently felt quite disheartened and frustrated when I lost a game of Diplomacy because I'd been betrayed by another player (note: Diplomacy is a board game almost entirely concerned with betrayal and backstabbing). Even though I knew from the outset that this was part of the game, and knew that it was ultimately fairly irrational for me to feel upset, the fact remained that I did. It was a natural emotional response to seeing all my plans dashed and my chance of winning slip through my fingers. I found I didn't really care about continuing to play anymore, and even though I tried to convince myself that I should still care, my heart wasn't in it.
Would I play Diplomacy again? Absolutely. But that doesn't change the fact that it hurt to lose, and it hurts to lose in Shadowrun as well. Emotion leaks, and not everyone is good at preventing it from leaking. Even if your players want to be punished harshly for their actions... they still might get upset when they are punished for their actions. This doesn't necessarily mean you shouldn't punish them.
How to minimise people getting upset
So, it might be inevitable that people get upset to some extent. This doesn't mean there aren't things that can be done to avoid it.
If players cause their characters to make legitimately poor decisions that, based on the information they have and their understanding of it, lead to what they consider to be consequently deserved negative outcomes for their characters (and only their characters), then this is the best possible situation with the least amount of upsetness.
But communication is key in every stage of the process.
If players don't have complete information about the expected consequences of their decisions (even if their characters do) then they'll feel cheated when they get negative consequences they feel they couldn't have known about. Particularly in situations where the stakes are high, it can often be a good thing to clearly and explicitly state to the players, out of character, what you think they should know (based on their characters' understanding) what the expected outcomes of their decision are. For example, saying something like "Are you sure you want to jump into the hole? Just so we're clear, it's a fairly long drop and it's too dark for you to tell what's at the bottom, it could be spikes or something, and even if there's nothing bad you might not be able to get back up again." This ensures that the players are making informed decisions (even if it's the informed decision to have their character make an uninformed decision) and clears up any potential misunderstandings before they happen (maybe when the player imagined that hole, he thought it was just a meter or so deep!)
If the characters have incomplete information, it's equally difficult for the players to make realistic decisions. And it's often difficult for characters to get anything more than incomplete information. I recommend erring on the side of being generous when characters act "stupidly" based on what information they've had access to in-world. Yes, there should be some cost to characters choosing to rush in blindly or disregard signs of danger. But clues that are obvious to the GM are often painfully opaque to the players. See some of the answers to this question for effective ways to communicate danger to players.
Even if the players and the characters have relatively complete information, there may be a lack of shared understanding as to what exactly constitutes "reasonable consequences". To some groups, character death is something that should be completely off the table. To some groups, significant character-altering bad things (e.g, loss of a limb, new negative Traits) should never happen to a character without the player's express out-of-character permission. Possibly your players think they want a "rough, dark, dangerous" game but their understanding of "dangerous" is different to yours.
This is a good time for you and your players to use the Same Page Tool to narrow down what exactly the expectations are.
Okay, I did all that, but they still get still upset! What do I do?
It's not easy to deal rationally with frustrated players. They feel like they've failed and they feel powerless, and consequently they're disincentivised to keep engaging with the game (on both counts: they've been hurt by the fact that they've failed and don't want to be hurt again, and they feel like they have no power to influence events, so why bother?)
If you must make players fail and suffer harsh consequences, you should try to minimise both how hard the failure should hit and how powerless they are as a result. An entirely unrecoverable failure is kind of frustrating even if it's deserved. If they're already frustrated, you should do what you can to give them back some power. If possible, try to do this without entirely eliminating the sharpness of their failure (otherwise it feels like you're just capitulating to their tantrum, which is not what they want and so will not make them feel batter). But show them that even though they've suffered consequences, they haven't lost their ability to achieve their goals. For example, they're badly wounded and they don't think they can successfully contribute to the fight anymore? Reframe the conflict for them personally: give them a chance to get away before the enemy kills them (and oppose them limitedly in that goal rather than in the rest of the party's goal of winning the fight). Or give them a chance to, while wounded, crawl over to the grenade the enemy leader dropped on the ground and toss it. Make them feel like they still have agency.
Finally, if a player is becoming so frustrated and upset that they're making it hard to say that the game is actually fun, it might be time to give them a bit of space. You can:
- switch focus: swap to another section of the party or do a "meanwhile" segment with a group of NPCs or cut backwards or forwards in time
- rush to a conclusion: say that most of the fight goes out of the enemy as soon as the players kill the next one, or say "okay, you kill the rest of them, we don't really need to bother rolling dice, you're going to win eventually", or tell them that enemy reinforcements are arriving in great numbers and they think it's probably a losing battle - do they want to run while they've got the chance?
- if entirely necessary, just stop playing entirely and resume next week when everyone's had a bit of a chance to calm down.